메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 알고리즘

뇌를 자극하는 알고리즘 질의응답 게시판입니다.

싱글 링크드리스트 탐색 질문 올립니다.

2018-06-25

|

by 김햔모

667

책 35p에 보면 

 

Node* SLL_GetNodeAt(Node* Head, int Location)

{

Node* Current = Head;

while(Current != NULL && (--Location) >= 0)

{

Current = Current->NextNode;

}

return Current;

 

이렇게 돼 있는데 while문에서 Current != NULL 인 경우는 왜 조건에 포함된건가요?

 

전에 AppendNode에서 봤을 때 꼬리는 노드가 연결되지 않아 NULL인 점을 활용해서 노드를 추가할 때 사용한 것으로 알고 있는데..

 

탐색에서 저걸 써버리면 10개의 자료가 저장된 리스트에서 5번째 자료를 찾기 위해 저대로 코드를 넣는다면..

 

5번째가 아니라 꼬리를 향해(NULL을 향해) 계속 뒤로 뒤로 나아갈것이지 않나요?

 

두가지 요건이 만족해야 while문을 탈출할 수 있는데 저 조건이 왜 포함된 것인가요?

댓글 입력
자료실