더미 노드가 추가된 형태는 다음과 같다. 

head -> Dummy -> 데이터1 -> 데이터2 -> 데이터3 -> … -> tail 


더미 노드 두 줄의 코딩으로 많은 양의 코드가 줄었다. 

 





새 노드를 추가할 때, 리스트의 머리와 꼬리 중 어디에 저장을 할 것인가?


- 두 가지 방법 모두 장단점이 있다.


머리에 추가할 경우

장점:    포인터 변수 tail이 불필요하다.

단점:    저장된 순서를 유지하지 않는다.


꼬리에 추가할 경우

장점:    저장된 순서가 유지된다.

단점:    포인터 변수 tail이 필요하다.


어떠한 방법이 더 좋다고 판단할 성격의 문제는 아니란다.

내가 즐겨보는 책의 저자는 머리에 추가하는 방법을 선호한다고 한다. 그 이유는 다음과 같다.

"포인터 변수 tail을 유지하기 위해서 넣어야 할 부가적인 코드가 번거롭게 느껴질 수 있다. 게다가 리스트 자료구조는 저장된 순서를 유지해야 하는 자료구조가 아니다."

라고 말하고 있다.

그리고 많은 수의 자료구조 서적들도 노드를 머리에 추가하는 방식으로 연결 리스트를 구현한다고 한다. 

나도 머리 부분에 노드를 추가하는 것이 더 괜찮은 것 같다고 생각한다.


Posted by scii
: