Best Video Explained:
code:
some bugs here but understood the implementation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
#include<bits/stdc++.h> void display(void); void addatbegin(void); void addafter(void); struct node { int data; struct node *link; }; struct node *root=NULL; int len; void append() { struct node *temp; temp=(struct node*)malloc(sizeof(struct node)); printf("Enter node data: "); scanf("%d", &temp->data); temp->link=NULL; if(root==NULL) //list is empty { root=temp; } else { struct node* p; p=root; while(p->link!=NULL) { p=p->link; } p->link=temp; } } int length() { int cnt=0; struct node *temp; temp=root; while(temp!=NULL) { cnt++; temp=temp->link; } return cnt; } void display() { struct node* temp; temp==root; if(temp==NULL) { printf("List is empty\n"); } else { while(temp!=NULL) { printf("%d-->",temp->data); temp=temp->link; } printf("\n"); } } //void delete(); int main() { int ch; while(1) { printf("Single linked list op:"); printf("1. Append\n"); printf("2. Add at begin\n"); printf("3. Add at after\n"); printf("4. Lenght\n"); printf("5. Display\n"); printf("6. Delete\n"); printf("7. Quit\n"); printf("enter your chocie: "); scanf("%d",ch); switch(ch) { case 1: append(); break; case 2: addatbegin(); break; case 3: addafter(); break; case 4: len=length(); printf("Length=%d",len); break; case 5: display(); break; case 7: exit(1); default: printf("invalid\n"); } } } |