기본 자료 구조들링크드 리스트링크드 리스트 탐색 연산

Q

return iterator의 결과 값이 data값으로 나가는 것이 이해가 되지 않습니다!

조회 666

좋아요 2

2020년 11월 11일

질문이 있습니다! 어떻게 iterator는 Node의 객체로서 data값과 next값을 가지고 있는데,

왜 data값을 자동으로 리턴하나요? 생각해보니까, self.data 나 self.next 둘다 동등한 값인데 알아서 self.data가 리턴되는 것이 이해가 잘 되지 않습니다!

위의 파라미터 값을 리턴하는가 싶은데 그것 또한 이해 안되고 말이죠.



  def find_node_with_data(self, data):

    """링크드 리스트에서 탐색 연산 메소드. 단, 해당 노드가 없으면 None을 리턴한다"""

    iterator = self.head

    while iterator is not None:

      if iterator.data == data: 

        return iterator #이 부분입니다.

      iterator = iterator.next

    return None


+


class Node:

  """링크드 리스트의 노드 클래스"""

  def __init__(self, data):

    self.data = data # 실제 노드가 저장하는 데이터

    self.next = None # 다음 노드에 대한 레퍼런스


return iterator의 결과 값이 data값으로 나가는 것이 이해가 되지 않습니다!
A
1개의 답변이 있어요

말씀하신 게 작성해주신 코드와 좀 다른 이야기를 하고 계신 듯해서 이해가 잘 안갑니다.

질문의 첫줄에서 iterator는 Node 객체라고 말씀하셨는데 어느 부분에서 data만 return되었다고 하신건지 궁금합니다.


반환된 iteartor 값은 Node의 객체이고 함수 바깥쪽에서 Node의 .data 를 통해 data 값만 따로 출력하고 있습니다.

2020년 11월 11일

댓글 3

2020년 11월 11일
퇴근하고 제정신이 아니라 찬찬히 살펴보지 못한 저의 불찰입니다... 그래도 노드 그대로를 리턴하고 밑에서 뺴줬는데 이제야 확인했네요.. 답변 감사합니다
2020년 11월 11일
퇴근하고 제정신이 아니라 찬찬히 살펴보지 못한 저의 불찰입니다... 그래도 노드 그대로를 리턴하고 밑에서 뺴줬는데 이제야 확인했네요.. 답변 감사합니다
2020년 11월 12일
그럴 수 있습니다 ㅎㅎ 저도 퇴근하고 보다보면 지쳐서 많이 못보는 거 같아요. 천천히 공부하시면 됩니다! 하루아침에 안되는 공부더라구요.

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇