logo

Прелазак у једноструко повезану листу

Прелазак је најчешћа операција која се изводи у скоро сваком сценарију једноповезане листе. Прелазак значи посећивање сваког чвора листе једном да би се извршила нека операција на томе. Ово ће се урадити коришћењем следећих изјава.

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

Алгоритам

    КОРАК 1:СЕТ ПТР = ГЛАВАКОРАК 2:ИФ ПТР = НУЛЛ

    НАПИШИТЕ 'ПРАЗНУ ЛИСТУ'
    ИДИ НА КОРАК 7
    КРАЈ ИФ

    4. КОРАК:ПОНАВЉАЈТЕ КОРАК 5 И 6 ДО ПТР != НУЛЛКОРАК 5:ШТАМПАЈ ПТР→ ПОДАЦИКОРАК 6:ПТР = ПТР → СЛЕДЕЋЕ

    [КРАЈ ПЕТЉЕ]

    КОРАК 7:ИЗЛАЗ

Ц функција

 #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