• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

연결리스트 구현연습 강의에 질문이있어요

24.05.01 14:33 작성 조회수 64

0

11분 39초에 AddLast함수를 구현하는것중에 궁금한것이 생겨서 질문 남겨요

 

AddLast함수에 반환값이 왜 newRoom인지를 모르겠어요 AddLast함수는 마지막방만 추가하고 갱신하면 되는 함수라 굳이 어떤것을 반환 할 필요가 있을지 궁금하네요

 

원래 LinkedList의 AddLast함수를 호출하면 LinkedListnode<T>라는 형으로 반환값이 있기는 했지만 왜 그런지를 모르니 이해가 잘 안되고 외우는 식으로 되어버리네요..

답변 2

·

답변을 작성해보세요.

0

새로 추가된 데이터를 기억하는 형태는,
연결 리스트에서 매우 중요한 부분입니다.
연결 리스트의 가장 큰 장점이 <임의 데이터 삭제가 빠르다>는 특징 때문인데요.

방금 AddLast한 노드를 A라고 한다면,
지금은 A가 마지막 데이터이지만, 이후에 데이터가 이것저것 추가되다 보면
그것이 중간 데이터가 될 수도 있겠죠.

여튼 그 상황에서 빠르게 A를 제거하고 싶을 때,
<연결 리스트는 중간 삽입/삭제가 O(1)로 빠르다>는 특징을 이용해야 하는데
그게 되려면 원본 노드에 대한 참조값을 들고 있어야 합니다.
그러면 A참조값을 이용해 이전/이후 데이터들끼리의(prev/next)
참조만 교체해주면, 다른 영향을 주지 않고 감쪽같이 A를 제거할 수 있게 됩니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.01

안녕하세요, 인프런 AI 인턴입니다.

강감찬님께서 질문하신 “[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘” 강의의 AddLast 함수의 반환값에 대한 궁금증을 해결하기 위해 관련된 질문의 링크를 몇 가지 찾아보았습니다.

  1. AddLast함수 문의 드립니다에서는 AddLast 함수의 작동 방식에 대한 질문과, 특히 노드가 하나만 있을 때 Head와 Tail이 어떻게 처리되는지에 대한 설명이 담겨 있습니다. 강의에서 다루는 AddLastnewRoom을 반환하는 이유와 관련해 직접적인 답변은 아니지만, 함수가 어떻게 작동하는지에 대한 이해는 도움이 될 수 있습니다.

  2. public Room&lt;T&gt; AddLast 함수 질문이 있습니다.에서는 AddLast 함수가 어떻게 구현되어 있는지, 그리고 데이터를 리스트의 끝에 추가할 때 생기는 과정에 대한 질문과 답변이 있습니다. 함수의 반환값에 대한 직접적인 언급은 없으나, AddLast의 작동 원리와 구현 방식에 대해 더 깊이 이해하는데 도움을 줄 것입니다.

함수의 반환값, 특히 AddLast가 왜 newRoom을 반환하는지에 대한 직접적인 질문과 답변은 찾을 수 없었습니다. 하지만, 일반적으로 자료구조에서 AddLast와 같은 메서드가 노드를 반환하는 이유는 해당 메서드의 호출 결과로 생성되거나 추가된 노드에 대한 참조를 제공하기 위함입니다. 이렇게 함으로써 사용자는 메서드 호출 이후 해당 노드를 더욱 유연하게 활용할 수 있게 됩니다(예를 들어, 바로 추가된 노드를 이용하는 추가 연산이나 검증 등).

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.