Page 345 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 345
머리 노드인지 판단하는 방법
자료형이 Node *형인 변수 p는 리스트의 노드 중 하나를 가리킵니다. 변수 p가 가리키는
노드가 연결 리스트의 머리 노드인지 판단하는 방법은 다음과 같습니다.
p == list->head /* p가 가리키는 노드가 머리 노드인지 확인합니다. */
꼬리 노드인지 판단하는 방법
자료형이 Node *형인 변수 p는 리스트의 노드 중 하나를 가리킵니다. 변수 p가 가리키는 노
드가 연결 리스트의 꼬리 노드인지 판단하는 방법은 다음과 같습니다.
p->next == NULL /* p가 가리키는 노드가 꼬리 노드인지 확인합니다. */
검색을 수행하는 Search 함수
Search 함수는 어떤 조건을 만족하는 노드를 검색합니다. 반환하는 값은 찾은 노드에 대한
포인터입니다. 만약 검색에 실패하면 널을 반환합니다. 검색에 사용하는 알고리즘은 선형 검
색이고 검색할 노드를 만날 때까지 머리 노드부터 스캔합니다.
리스트의 노드를 순서대로
head 스캔합니다.
①
② ③ ④
A B C D E F
[그림 9-6] 연결 리스트에서 노드 D를 선형 검색하는 과정
노드 스캔은 아래의 조건 중 하나만 성립하면 종료됩니다.
조건 1. 검색 조건을 만족하는 노드를 찾지 못하고 꼬리 노드를 지나가기 직전인 경우
조건 2. 검색 조건을 만족하는 노드를 찾은 경우
그런데 이 함수가 전달받는 매개변수는 다음과 같습니다.
09•리스트 345