logo

Перехід у однозв’язаному списку

Обхід — найпоширеніша операція, яка виконується майже в кожному сценарії однозв’язаного списку. Обхід означає відвідування кожного вузла списку один раз, щоб виконати над ним певну операцію. Це буде зроблено за допомогою наступних тверджень.

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

Алгоритм

    КРОК 1:ВСТАНОВИТИ PTR = HEADКРОК 2:ЯКЩО PTR = NULL

    НАПИШІТЬ «ПОРОЖНИЙ СПИСОК»
    ПЕРЕЙТИ ДО КРОКУ 7
    КІНЕЦЬ ЯКЩО

    КРОК 4:ПОВТОРЮЙТЕ КРОК 5 І 6, ДОКИ PTR != NULLКРОК 5:ДРУКУВАТИ PTR→ ДАНІКРОК 6:PTR = PTR → ДАЛІ

    [КІНЕЦЬ ЦИКЛУ]

    КРОК 7:ВИХІД

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

Вихід

 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