Paste Search Dynamic
data
  1. #include<stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct node{
  5.           int data;
  6.         struct node * next;
  7. }*f;
  8.  
  9. struct node * create(int size){
  10.          
  11.           if(size!=0){
  12.        
  13.         struct node *first,*q;
  14.  
  15.         int i=1,x;
  16.        
  17.         first=(struct node *)malloc(sizeof(struct node));
  18.                 q=first;
  19.         printf("\nEnter Data for %d LL ",i);
  20.         scanf("%d",&x);
  21.         first->data=x;
  22.         i++;
  23.        
  24.         while(i<=size){
  25.                
  26.                 struct node *b=(struct node*)malloc(sizeof(struct node));
  27.                 q->next=b;
  28.                 printf("\nEnter Data for %d LL ",i);
  29.                 scanf("%d",&x);
  30.                 b->data=x;
  31.                 q=b;
  32.                 i++;
  33.         }
  34.        
  35.         q->next=null;
  36.        
  37.         return first;
  38.        
  39.           }else{
  40.                     f=null;
  41.                     return f;
  42.           }
  43. }
  44.  
  45. void display(struct node *g){
  46.          
  47.           if(g==null){
  48.                     printf("\n****** Empty Linked List!!!!! ****** ");
  49.           }else{
  50.         printf("\nLL DATA's' : ");
  51.         do{
  52.                 printf(" %d",g->data);
  53.                 g=g->next;
  54.         }while(g!=null);
  55.           }
  56. }
  57.  
  58. int count_list(struct node * ct){
  59.           int count;
  60.           while(ct!=null){
  61.                     count++;
  62.                     ct=ct->next;
  63.           }
  64.           return count;
  65. }
  66.  
  67. void deleteall(struct node *del){
  68.           int x=0;
  69.           struct node *temp;
  70.           while(del!=null){
  71.                     temp=del;
  72.                     del=del->next;
  73.                     free(temp);
  74.                     printf("\n\n**** %d Linked List deleted ****",++x);
  75.                     }
  76.           if(del==null){
  77.                     f=del;
  78.                     if(f==null)
  79.           printf("\n\n\n\n\n\n\n\n****** All Linked List deleted from Memory ******\n");
  80.  
  81.           }
  82. }
  83.  
  84. void delpos(struct node *del,int pos){
  85.           int i=1;
  86.           struct node *ptr,*temp=del;
  87.           if(pos==1){
  88.                    
  89.                  ptr=temp;
  90.                  temp=temp->next;
  91.                  free(ptr);
  92.                  f= temp;
  93.                      
  94.           }
  95.           else{
  96.          
  97.           while(i!=pos){
  98.                     ptr=temp;
  99.                     temp=temp->next;
  100.                     i++;  
  101.           }
  102.           ptr->next=temp->next;
  103.           free(temp);
  104.           }
  105. }
  106.  
  107. void insert(struct node * st,int data,int pos){
  108.          
  109.           int i=1;
  110.           struct node *ptr,*temp=st;
  111.           struct node *n=(struct node*)malloc(sizeof(struct node));
  112.           if(pos==1){
  113.                    
  114.          
  115.                   n->data=data;
  116.                   n->next=f;  
  117.                   f= n;
  118.                      
  119.           }
  120.           else{
  121.          
  122.           while(i!=pos){
  123.                     ptr=temp;
  124.                     temp=temp->next;
  125.                     i++;  
  126.           }
  127.           n->next=temp;
  128.           ptr->next=n;
  129.           n->data=data;
  130.           }
  131. }
  132.  
  133. int main(){
  134.          
  135.           int x=0,id;
  136.        
  137.         lstart:system("cls");
  138.          
  139.           printf("Enter the Size of Linked List\n");
  140.        
  141.         scanf("%d",&x);
  142.        
  143.         if(x>0){
  144.        
  145.         f=create(x);
  146.        
  147.         display(f);
  148.        
  149.         menu:printf("\n\n\n***  MENU  ***");
  150.         printf("\nPress -> 1 for Insertion.\n");
  151.         printf("\nPress -> 2 for Deletion.\n");
  152.         printf("\nPress -> 3 for Exit.....\n");
  153.         scanf("%d",&id);
  154.        
  155.         if(id==2){
  156.                  
  157.         system("cls");
  158.        
  159.         int pos,sl;
  160.        
  161.         display(f);
  162.        
  163.         printf("\n\nEnter the position for deletion. (starting from 1) \n");
  164.        
  165.         scanf("%d",&pos);
  166.        
  167.         sl=count_list(f);
  168.        
  169.         if(pos>0 && pos<=sl){
  170.                   delpos(f,pos);
  171.                   printf("\n\nLL after deletion ");
  172.                   display(f);
  173.                   goto menu;
  174.         }else{
  175.         printf("\n!!!!!!!! Position Error !!!!!!!!\n  \n*** deletion Canceled ***");
  176.         goto menu;
  177.           }}
  178.           else if(id==1){
  179.                    
  180.                     system("cls");
  181.  
  182.         int idata,ipos,isl;
  183.        
  184.         display(f);
  185.          
  186.           printf("\n\nEnter Data for insertion \n");
  187.         scanf("%d",&idata);
  188.         printf("\n\nEnter the position  for Given Data. (Strating from 1) \n");
  189.         scanf("%d",&ipos);
  190.        
  191.         isl=count_list(f)+1;
  192.  
  193.  
  194.           if(ipos>0 && ipos<=isl){
  195.                   insert(f,idata,ipos);
  196.                   printf("\n\nLL After Insertion ");
  197.                   display(f);
  198.                   goto menu;
  199.         }else{
  200.         printf("\n!!!!!!!! Position Error !!!!!!!!\n  \n*** Insertion Canceled ***");
  201.         goto menu;
  202.                     }
  203.           }else{
  204.                    
  205.           deleteall(f);
  206.         display(f);
  207.                    
  208.           }
  209.         }
  210.           else{
  211.                     printf("\nYou Cannot Create Linked list Size of Zero. \n");
  212.                     printf("\nPress 1 for Retry. \n\nPress 2 for Exit. \n");
  213.                     int temp;
  214.                     scanf("%d",&temp);
  215.                     if(temp==1){
  216.                     goto lstart;
  217.                     }
  218.                     else
  219.                     printf("\n** BYE **\n");
  220.           }
  221.           return 0;
  222.        
  223. }
Parsed in 0.032 seconds