큐 구현 질문 드립니다
안녕하세요,
doublylinkedlist 에서 insertAt 수정 중에
if(newNode.next == null){ //새로 삽입한 노드가 마지막 노드라면
this.tail = newNode;
}이 부분은 index == this.count 일 때 데이터를 삽입하는 경우에만 해당되는 것 같은데,
else if문 밖으로 빼서 공통적으로 처리해주는 이유가 궁금합니다.
감사합니다!
답변 1
2
안녕하세요 김예서님!
해당 부분에서 else if문 밖으로 빼는 이유가 충분히 궁금할 수 있다고 생각합니다.
대부분 경우에서는 index == this.count로 마지막에 삽입된 경우에서 동작하는 것이 맞지만 딱 하나의 경우를 더 처리해줘야합니다.
바로 0번 인덱스에 삽입할 때인데요. 0번 인덱스에 삽입하는 경우라도 다 그렇지는 않고 빈 연결리스트에 최초로 0번 인덱스에 삽입하는 경우 newNode를 head로 설정해줘야하는 동시에 tail로 만들어줘야합니다.
따라서 해당 로직을 if문과 else if문에 둘 다 넣어줘야하는데 코드를 줄이기 위해서 밖으로 빼서 하나의 경우로 처리해준 것입니다.
궁금증이 해결되셨나요? 😄
연결리스트 삽입삭제 O(1) 아닌가요?
0
11
2
큐의 마지막 데이터가 head에 위치해야 하는 이유가 궁금합니다.
0
71
2
이중연결 리스트 데이터 삭제시 질문이 있습니다.
1
64
2
자바스크립트 배열은 동적이 아닌가요?
1
87
2
자바스크립트 배열
0
77
2
코테에서 링크리스트 자료구조를 사용해야 하면, 이번 강의에서 구현한 메서드들도 모두 직접 구현하면 되나요?/
0
153
2
공부 방식 질문 드립니다.
1
117
2
메모이제이션과 타뷸레이션 관련해서 질문드립니다.
1
169
2
병합정렬에서 질문이 있습니다.
2
142
1
병합정렬 질문 있습니다.
1
138
5
데이터 삽입, 삭제 함수 오류 범위 설정
0
158
2
해시 테이블에서 질문이 잇습니다.
2
128
2
시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?
1
148
2
터미널 설정
0
114
2
2:13분 관련 질문입니다
0
91
1
8:47초경부터 9:00초까지 질문입니다.
1
135
2
tail을 삭제하는 경우에 관련해서 질문이 있습니다.
0
107
1
2:36초 head 위치가?
1
111
2
환경구축강의 중 터미널 파일 실행오류
0
162
2
4:58 이중for문 질문있습니다.
0
104
1
hanoi함수 처음 호출에 대해서 여쭤봅니다.
1
133
2
해쉬테이블 데이터 관련해서 질문있습니다.
0
149
2
자바스크립트 Map과 어떤 차이가 있나요??
0
206
2
질문이있습니다.
0
104
1





