logo

Premikanje po enojno povezanem seznamu

Prehod je najpogostejša operacija, ki se izvaja v skoraj vseh scenarijih enojno povezanih seznamov. Prehod pomeni enkratni obisk vsakega vozlišča seznama, da se na njem izvede določena operacija. To bo storjeno z uporabo naslednjih stavkov.

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

Algoritem

    KORAK 1:NASTAVI PTR = GLAVA2. KORAK:ČE je PTR = NULL

    NAPIŠI 'PRAZEN SEZNAM'
    POJDI NA KORAK 7
    KONEC ČE

    KORAK 4:PONAVLJAJTE KORAKA 5 IN 6, DOKLER PTR != NULL5. KORAK:NATISNI PTR→ PODATKI6. KORAK:PTR = PTR → NAPREJ

    [KONEC ZANKE]

    7. KORAK:IZHOD

C funkcija

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

Izhod

 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