logo

단일 연결 리스트 순회

순회는 단일 연결 목록의 거의 모든 시나리오에서 수행되는 가장 일반적인 작업입니다. 순회란 목록의 각 노드를 한 번 방문하여 해당 노드에 대한 작업을 수행하는 것을 의미합니다. 이는 다음 명령문을 사용하여 수행됩니다.

 ptr = head; while (ptr!=NULL) { ptr = ptr -> next; } 

연산

    1 단계:PTR 설정 = HEAD2 단계:IF PTR = NULL

    '빈 목록' 쓰기
    7단계로 이동
    IF의 끝

    4단계:PTR != NULL이 될 때까지 5단계와 6단계를 반복하세요.5단계:인쇄 PTR→ 데이터6단계:PTR = PTR → 다음

    [루프 종료]

    7단계:출구

C 함수

 #include #include void create(int); void traverse(); struct node { int data; struct node *next; }; struct node *head; void main () { int choice,item; do { printf('
1.Append List
2.Traverse
3.Exit
4.Enter your choice?'); scanf('%d',&choice); switch(choice) { case 1: printf('
Enter the item
'); scanf('%d',&item); create(item); break; case 2: traverse(); break; case 3: exit(0); break; default: printf('
Please enter valid choice
'); } }while(choice != 3); } void create(int item) { struct node *ptr = (struct node *)malloc(sizeof(struct node *)); if(ptr == NULL) { printf('
OVERFLOW
'); } else { ptr->data = item; ptr->next = head; head = ptr; printf('
Node inserted
'); } } void traverse() { struct node *ptr; ptr = head; if(ptr == NULL) { printf('Empty list..'); } else { printf('printing values . . . . .
'); while (ptr!=NULL) { printf('
%d',ptr->data); ptr = ptr -> next; } } } 

산출

 1.Append List 2.Traverse 3.Exit 4.Enter your choice?1 Enter the item 23 Node inserted 1.Append List 2.Traverse 3.Exit 4.Enter your choice?1 Enter the item 233 Node inserted 1.Append List 2.Traverse 3.Exit 4.Enter your choice?2 printing values . . . . . 233 23