Advertisement
Guest User

structure

a guest
Oct 23rd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.58 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct data
  4. {
  5.     int a;
  6.     data *next;
  7. } data;
  8. data *head;
  9.  
  10. void insert_at_end(int b)
  11. {
  12.     if(head==NULL)
  13.     {
  14.         head=(data*)malloc(sizeof(data));
  15.         head->a=b;
  16.         head->next=NULL;
  17.         return;
  18.     }
  19.     data *temp=head;
  20.     data *x=(data*)malloc(sizeof(data));
  21.     x->a=b;
  22.     x->next=NULL;
  23.     while(temp->next!=NULL)
  24.     {
  25.         temp=temp->next;
  26.     }
  27.     temp->next=x;
  28. }
  29.  
  30.  
  31. void insert_at_begining(int c)
  32. {
  33.     data *x1=(data*)malloc(sizeof(data));
  34.     x1->a=c;
  35.     x1->next=head;
  36.     head=x1;
  37. }
  38.  
  39. void insert_at_n(int d,int n)
  40. {
  41.     data *temp=head;
  42.     data *x2=(data*)malloc(sizeof(data));
  43.     x2->a=d;
  44.     if(n==1)
  45.     {
  46.         x2->next=head;
  47.         head=x2;
  48.     }
  49.     else
  50.     {
  51.         n=n-2;
  52.         while(n--);
  53.         {
  54.             temp=temp->next;
  55.             if(temp->next==NULL)
  56.             {
  57.                 temp->next=x2;
  58.                 x2->next=NULL;
  59.                 return;
  60.             }
  61.             x2->next=temp->next;
  62.             temp->next=x2;
  63.         }
  64.     }
  65. }
  66.  
  67. void delete_n(int m)
  68. {
  69.     data *temp=head;
  70.     data *fr;
  71.     if(m==1)
  72.     {
  73.         fr=temp;
  74.         head=fr->next;
  75.         free(fr);
  76.     }
  77.     else
  78.     {
  79.         m=m-2;
  80.         while(m--)
  81.         {
  82.             temp=temp->next;
  83.             if(temp->next==NULL)
  84.             {
  85.                 printf("Not found\n");
  86.                 return;
  87.             }
  88.         }
  89.         fr=temp->next;
  90.         temp->next=fr->next;
  91.         free(fr);
  92.     }
  93. }
  94.  
  95. void print()
  96. {
  97.     data *temp=head;
  98.     while(temp!=NULL)
  99.     {
  100.         printf("%d ",temp->a);
  101.         temp=temp->next;
  102.     }
  103.     printf("\n");
  104. }
  105.  
  106. int lookfor(int key)
  107. {
  108.     data *temp=head;
  109.     int count =0;
  110.     while(temp->next!=NULL)
  111.     {
  112.         count++;
  113.         if(temp->a==key)
  114.             return count;
  115.         temp=temp->next;
  116.     }
  117.     return -1;
  118. }
  119.  
  120. void dltvalue(int del)
  121. {
  122.     data *temp=head;
  123.     data *fr;
  124.     int n=lookfor(del);
  125.     if(n==1)
  126.     {
  127.         fr=temp;
  128.         head=fr->next;
  129.         free(fr);
  130.     }
  131.     else
  132.     {
  133.         n=n-2;
  134.         while(n--)
  135.         {
  136.             temp=temp->next;
  137.             if(temp->next==NULL)
  138.             {
  139.                 printf("Not found\n");
  140.                 return;
  141.             }
  142.         }
  143.         fr=temp->next;
  144.         temp->next=fr->next;
  145.         free(fr);
  146.     }
  147.  
  148. }
  149. int main()
  150. {
  151.     int del,b,c,d,n,t,key;
  152.     head=NULL;
  153.     printf("1. insert\n");
  154.     printf("2. begening\n");
  155.     printf("3. insert_n\n");
  156.     printf("4. delete_n\n");
  157.     printf("5. print\n");
  158.     printf("6. find\n");
  159.     printf("7. delete\n");
  160.     while(1)
  161.     {
  162.         scanf("%d",&t);
  163.         switch(t)
  164.         {
  165.         case 1:
  166.             scanf("%d",&b);
  167.             insert_at_end(b);
  168.             break;
  169.         case 2:
  170.             scanf("%d",&c);
  171.             insert_at_begining(c);
  172.             break;
  173.         case 3:
  174.             scanf("%d%d",&d,&n);
  175.             insert_at_n(d,n);
  176.             break;
  177.         case 4:
  178.             int m;
  179.             scanf("%d",&m);
  180.             delete_n(m);
  181.             break;
  182.         case 5:
  183.             print();
  184.             break;
  185.         case 6:
  186.             {
  187.                 scanf("%d",&key);
  188.                 int z=lookfor(key);
  189.                 if(z!=-1) printf("Element Found\n");
  190.                 else printf("Element Not Found\n");
  191.                 break;
  192.             }
  193.         case 7:
  194.             scanf("%d",&del);
  195.             dltvalue(del);
  196.             break;
  197.         }
  198.     }
  199.     return 0;
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement