logo

Bejárás az egyedileg linkelt listában

A bejárás a legáltalánosabb művelet, amelyet az egyszeresen csatolt listák szinte minden forgatókönyvében végrehajtanak. A bejárás azt jelenti, hogy egyszer meglátogatjuk a lista minden csomópontját, hogy azokon valamilyen műveletet hajtsunk végre. Ez a következő állítások használatával történik.

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

Algoritmus

    1. LÉPÉS:SET PTR = FEJ2. LÉPÉS:HA PTR = NULL

    ÍRJA KI 'ÜRES LISTÁT'
    LÉPJEN A 7. LÉPÉSRE
    IF VÉGE

    4. LÉPÉS:ISMÉTELJE MEG AZ 5. ÉS 6. LÉPÉST, amíg PTR != NULL5. LÉPÉS:PRINT PTR→ DATA6. LÉPÉS:PTR = PTR → KÖVETKEZŐ

    [HURK VÉGE]

    7. LÉPÉS:KIJÁRAT

C függvény

 #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; } } } 

Kimenet

 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