logo

Percorrendo em lista vinculada individualmente

Atravessar é a operação mais comum executada em quase todos os cenários de lista vinculada individualmente. Atravessar significa visitar cada nó da lista uma vez para realizar alguma operação nele. Isso será feito usando as seguintes declarações.

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

Algoritmo

    PASSO 1:DEFINIR PTR = CABEÇAPASSO 2:SE PTR = NULO

    ESCREVA 'LISTA VAZIA'
    VÁ PARA O PASSO 7
    FIM DO SE

    PASSO 4:REPITA O PASSO 5 E 6 ATÉ PTR! = NULOPASSO 5:IMPRIMIR PTR → DADOSPASSO 6:PTR = PTR → PRÓXIMO

    [FIM DO LOOP]

    PASSO 7:SAÍDA

Função 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; } } } 

Saída

 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