logo

Attraversamento in una lista concatenata singolarmente

L'attraversamento è l'operazione più comune che viene eseguita in quasi tutti gli scenari di elenchi concatenati singolarmente. Attraversare significa visitare ogni nodo della lista una volta per eseguire qualche operazione su di esso. Ciò verrà fatto utilizzando le seguenti istruzioni.

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

Algoritmo

    PASSO 1:IMPOSTA PTR = TESTAPASSO 2:SE PTR = NULL

    SCRIVERE 'LISTA VUOTA'
    VAI AL PASSO 7
    FINE DI SE

    PASSO 4:RIPETERE I PUNTI 5 E 6 FINO A PTR != NULLPASSO 5:STAMPA PTR→ DATIPASSO 6:PTR = PTR → AVANTI

    [FINE DEL CICLO]

    PASSO 7:USCITA

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

Produzione

 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