sujonshekh

_Millon_sir_Full_program_Link_List_27-3-17

Mar 20th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.78 KB | None | 0 0
  1. //D.B.John PC
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. struct node
  5. {
  6.     int a;
  7.     struct node *p;
  8. };
  9.     int count(struct node *head);
  10.     void Insertion_last_position(struct node *head, int value);
  11.     void Insertion_specific_position(struct node *head, int vv, int pp);
  12.     void Deletion_specific_position(struct node *head, int pp);
  13.     int main()
  14. {
  15.     int n,i,c,pos,v,q;
  16.     struct node *list;
  17.  
  18.     list=(struct node *)malloc(1*sizeof(struct node));
  19.     list-> a=0;
  20.     list-> p=NULL;
  21.  
  22.     while(1)
  23.     {
  24.         printf("\n ....Menu....");
  25.          printf("\n press 0 for Quite \n");
  26.         printf("\n press 1 for Insertion \n");
  27.         printf("\n press 2 for Insertion specific position \n");
  28.         printf("\n press 3 Display\n");
  29.         printf("\n press 4 detion spacific profile\n");
  30.         printf("\n press 5 count totall node\n");
  31.         printf("\n press 6 Lenear search \n");
  32.  
  33.         printf("\n Enter your choise \n");
  34.         scanf("%d",&c);
  35.         switch(c)
  36.         {
  37.             case 0:exit (0);
  38.             break;
  39.             case 1:printf("\n choise=Insertion at last position");
  40.             printf("\n Enter ne value\n");
  41.             scanf("%d",&v);
  42.             Insertion_last_position(list,v);
  43.             break;
  44.  
  45.             case 2: printf("\n Insertion at specific position \n");
  46.             n=count(list);
  47.             if(n!=0)
  48.             {
  49.                 K: printf("\n Enter position between %d to %d \n",1,n+1);
  50.                 scanf("%d",& pos);
  51.                 if(pos>=1 && pos<=n+1)
  52.                 {
  53.                     printf("\n Enter new value \n");
  54.  
  55.                 scanf("%d",&v);
  56.                 Insertion_specific_position(list,v,pos);
  57.             }
  58.                     else
  59.                     {
  60.                         printf("\n Wrong position \n");
  61.                         goto K; //D.B.John PC
  62.                     }
  63.             }
  64.  
  65.  
  66.             else
  67.                 printf("\n The list is empty \n\n");
  68.                 break;
  69.  
  70.  
  71.             case 4: printf("\n Deletion at specific position \n");
  72.             n=count(list);
  73.             if(n!=0)
  74.             {
  75.                 L: printf("\n Enter position between %d to %d \n",1,n);
  76.                 scanf("%d",& pos);
  77.                 if(pos>=1 && pos<=n)
  78.  
  79.                 Deletion_specific_position(list,pos);
  80.  
  81.             else
  82.             {
  83.                 printf("\n Wrong position \n");
  84.                 goto L;
  85.  
  86.             }
  87.             }
  88.  
  89.  
  90.             else
  91.                 printf("\n The list is empty \n\n");
  92.                 break;
  93.  
  94.  
  95.  
  96.             case 3: printf("\n choise=Display\n");
  97.             if(list->p!=NULL)
  98.             Display(list);
  99.             else
  100.             printf("\n list is Empty \n");
  101.             break;
  102.  
  103.             case 5: printf("\n choise=Counting total node\n");
  104.             n=count(list);
  105.             printf("\n Total Node=%d\n",n);
  106.             break;
  107.  
  108.             case 6: printf("\n choise = linear search \n");
  109.             n=count(list);
  110.             if(n!=0)
  111.             {
  112.                 printf("\n Enter value for searching \n");
  113.                 scanf("%d",&v);
  114.                 Linear_search(list,v);
  115.             }
  116.             else
  117.  
  118.                 printf("\n There is no data for searching");
  119.                 break;
  120.  
  121.         }
  122.     }
  123.  
  124. }
  125. void Insertion_last_position(struct node *head, int value)
  126. {
  127.     struct node *temp;
  128.     while(head->p!=NULL)
  129.     head = head->p;
  130.     temp=(struct node *)malloc(1*sizeof(struct node));
  131.     temp->a=value;
  132.     temp->p=NULL;
  133.     head->p=temp;
  134.  
  135. }
  136. void Display(struct node *head)
  137. {
  138.     while(head->p!=NULL)
  139.     {
  140.         printf("\n%d \t",head->p->a);
  141.         head=head->p;
  142.     }
  143. }
  144.  
  145. int count(struct node *head)
  146. {
  147.     int t=0;
  148.     while(head->p!=NULL)
  149.     {
  150.         t=t+1;
  151.         head=head->p;
  152.     }
  153.     return t;
  154. }
  155.  
  156. void Insertion_specific_position(struct node *head, int vv, int pp)
  157. {
  158.     struct node *temp;
  159.     int i=0;
  160. while(head->p!=NULL)
  161.     {
  162.         if(i==pp-1)
  163.         break;
  164.         head=head->p;
  165.         i=i+1;
  166.     }
  167.     temp=(struct node *)malloc (1* sizeof(struct node));
  168.     temp->a=vv;
  169.     temp->p=head->p;
  170.     head->p=temp;
  171.  
  172. }
  173.  
  174. void Deletion_specific_position(struct node *head, int pp)
  175. {
  176.     struct node *temp;
  177.     int i=0;
  178.     while(head->p!=NULL)
  179.     {
  180.  
  181.         if(i==pp-1)
  182.         break;
  183.         head=head->p;
  184.         i=i+1;
  185.     }
  186.     temp=head->p;
  187.     head->p=temp->p;
  188.     free(temp);
  189.  
  190. }
  191.  
  192. void Linear_search(struct node *head, int vv)
  193. {
  194.     int c=0;
  195.     int i=0;
  196.     while(head->p!=NULL)
  197.     {
  198.         if(head->p->a==vv)
  199.         {
  200.             printf("\n Found at position = %d",i+1);
  201.             c=1;
  202.         }
  203.         i=i+1;
  204.         head=head->p;
  205.  
  206.     }
  207.     if(c==0)
  208.     printf("\n\n Not Found \n\n");
  209. }
Add Comment
Please, Sign In to add comment