• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

큐 구현 질문 드립니다

23.08.15 21:22 작성 조회수 236

1

안녕하세요,

doublylinkedlist 에서 insertAt 수정 중에

if(newNode.next == null){ //새로 삽입한 노드가 마지막 노드라면
            this.tail = newNode;
        }

이 부분은 index == this.count 일 때 데이터를 삽입하는 경우에만 해당되는 것 같은데,

else if문 밖으로 빼서 공통적으로 처리해주는 이유가 궁금합니다.

 

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요 김예서님!

해당 부분에서 else if문 밖으로 빼는 이유가 충분히 궁금할 수 있다고 생각합니다.

대부분 경우에서는 index == this.count로 마지막에 삽입된 경우에서 동작하는 것이 맞지만 딱 하나의 경우를 더 처리해줘야합니다.

바로 0번 인덱스에 삽입할 때인데요. 0번 인덱스에 삽입하는 경우라도 다 그렇지는 않고 빈 연결리스트에 최초로 0번 인덱스에 삽입하는 경우 newNode를 head로 설정해줘야하는 동시에 tail로 만들어줘야합니다.

따라서 해당 로직을 if문과 else if문에 둘 다 넣어줘야하는데 코드를 줄이기 위해서 밖으로 빼서 하나의 경우로 처리해준 것입니다.

궁금증이 해결되셨나요? 😄