logo

Procházení v jednotlivě propojeném seznamu

Procházení je nejběžnější operací, která se provádí téměř v každém scénáři jednoduše propojeného seznamu. Procházení znamená jednou navštívit každý uzel seznamu, abyste na něm provedli nějakou operaci. To bude provedeno pomocí následujících příkazů.

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

Algoritmus

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

    NAPIŠTE 'PRÁZDNÝ SEZNAM'
    PŘEJÍT KROK 7
    KONEC POKUD

    KROK 4:OPAKUJTE KROK 5 A 6 DO PTR != NULLKROK 5:TISKNOUT PTR→ DATAKROK 6:PTR = PTR → NEXT

    [KONEC SMYČKY]

    KROK 7:VÝSTUP

C funkce

 #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ýstup

 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