Page 381 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 381

머리 노드인지 판단하는 방법

                        Node *형 변수 p가 리스트에 있는 어떤 노드를 가리키는 경우 p가 가리키고 있는 노드가 원
                        형 리스트의 머리 노드인지 판단하려면 다음 식을 사용합니다.


                         p == list->head          /* p가 가리키는 노드가 머리 노드인지 확인합니다. */




                        꼬리 노드인지 판단하는 방법
                        Node *형 변수 p가 리스트에 있는 어떤 노드를 가리키는 경우 p가 가리키고 있는 노드가 원

                        형 리스트의 꼬리 노드인지 판단하려면 다음 식을 사용합니다.


                         p->next == list->head     /* p가 가리키는 노드가 꼬리 노드인지 확인합니다. */






                        이중 연결 리스트
                        선형 리스트의 가장 큰 단점은 다음 노드는 찾기 쉽지만 앞쪽의 노드는 찾을 수 없다는 점입니

                        다. 이 단점을 개선한 자료구조가 이중 연결 리스트(doubly linked list)입니다. 그림 9-18처럼
                        각 노드에는 다음 노드에 대한 포인터와 앞쪽의 노드에 대한 포인터가 주어집니다.
                           이중 연결 리스트는 양방향 리스트라고도 합니다.


                        head                 앞쪽 노드를 가리킵니다.
                                   NULL

                                    A       B      C      D       E      F
                                                                              NULL

                                                             다음 노드를 가리킵니다.

                                            [그림 9-18] 이중 연결 리스트


                        이중 연결 리스트의 노드는 그림 9-19처럼 3개의 멤버가 있는 구조체를 사용합니다.














                                                                                         09•리스트  381
   376   377   378   379   380   381   382   383   384   385   386