logo

Prechádzanie v jednotlivo prepojenom zozname

Prechádzanie je najbežnejšou operáciou, ktorá sa vykonáva takmer v každom scenári samostatne prepojeného zoznamu. Prechádzať znamená navštíviť každý uzol zoznamu raz, aby ste na ňom vykonali nejakú operáciu. To sa vykoná pomocou nasledujúcich vyhlásení.

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

Algoritmus

    KROK 1:SET PTR = HLAVAKROK 2:AK PTR = NULL

    NAPÍŠTE 'PRÁZDNY ZOZNAM'
    PREJSŤ NA KROK 7
    KONIEC AK

    KROK 4:OPAKUJTE KROK 5 A 6 DO PTR != NULL5. KROK:VYTLAČIŤ PTR → DÁTAKROK 6:PTR = PTR → NEXT

    [KONIEC SLUČKY]

    KROK 7:VÝCHOD

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

Výkon

 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