Advertisement
afrinahoque

All in ONE (Singly)

Oct 13th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.00 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. menu();
  4. add();
  5. insert_at_first();
  6. insert_at_last();
  7. insert_at_nth();
  8. Delete();
  9. delete_by_pos();
  10. delete_by_value();
  11. search();
  12. search_by_pos();
  13. search_by_value();
  14. display();
  15.  
  16. typedef struct node
  17. {
  18.     int a;
  19.     char ch[30];
  20.     struct node *next;
  21. }node;
  22.  
  23. node *head=NULL, *list=NULL;
  24.  
  25. int insert_at_first()
  26. {
  27.     node *N=(node*)malloc(sizeof(node));
  28.     printf("Name: \n");
  29.     scanf(" %[^\n]", N->ch);
  30.     printf("Roll: \n");
  31.     printf(" %d\n", &N->a);
  32.     if(head=NULL)
  33.     {
  34.         head=N;
  35.         N->next=NULL;
  36.     }
  37.     else
  38.     {
  39.         N->next=head;
  40.         head=N;
  41.     }
  42.     printf("\n1. Add\n");
  43.     printf("2. Menu\n");
  44.     printf("3. Exit\n");
  45.     printf("Choose an option.\n");
  46.     int b;
  47.     scanf("%d", &b);
  48.     switch(b)
  49.     {
  50.     case 1:
  51.         {
  52.         add();
  53.         break;
  54.         }
  55.     case 2:
  56.         {
  57.         menu();
  58.         break;
  59.         }
  60.     case 3:
  61.         {
  62.             exit(0);
  63.             break;
  64.         }
  65.  
  66.     default:
  67.         {
  68.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  69.             menu();
  70.         }
  71.     }
  72. }
  73.  
  74. int insert_at_last()
  75.     {
  76.         node *N=(node*)malloc(sizeof(node));
  77.     printf("Name: \n");
  78.     scanf(" %[^\n]", N->ch);
  79.     printf("Roll: \n");
  80.     printf(" %d\n", &N->a);
  81.     node *list=head;
  82.     if(head==NULL)
  83.     {
  84.         head=N;
  85.         N->next=NULL;
  86.     }
  87.     else
  88.     {
  89.         while(list->next!=NULL)
  90.         {
  91.             list=list->next;
  92.         }
  93.         N->next=list->next;
  94.         list->next=N;
  95.     }
  96.     printf("\n1. Add\n");
  97.     printf("2. Menu\n");
  98.     printf("3. Exit\n");
  99.     printf("Choose an option.\n");
  100.     int c;
  101.     scanf("%d", &c);
  102.     switch(c)
  103.     {
  104.     case 1:
  105.         {
  106.         add();
  107.         break;
  108.         }
  109.     case 2:
  110.         {
  111.         menu();
  112.         break;
  113.         }
  114.     case 3:
  115.         {
  116.             exit(0);
  117.             break;
  118.         }
  119.  
  120.     default:
  121.         {
  122.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  123.             menu();
  124.         }
  125.     }
  126. }
  127.  
  128. int insert_at_nth()
  129. {
  130.     node *N=(node*)malloc(sizeof(node));
  131.     printf("Name: \n");
  132.     scanf(" %[^\n]", N->ch);
  133.     printf("Roll: \n");
  134.     printf(" %d\n", &N->a);
  135.     node *list=head;
  136.     int n;
  137.     printf("Enter the Position:\n");
  138.     scanf("%d", &n);
  139.     if(n==1)
  140.     {
  141.         N->next=head;
  142.         head=N;
  143.     }
  144.     else
  145.     {
  146.         n=n-2;
  147.         while(n!=0 && list->next!=NULL)
  148.         {
  149.             list=list->next;
  150.             n--;
  151.         }
  152.         N->next=list->next;
  153.         list->next=N;
  154.     }
  155.     printf("\n1. Add\n");
  156.     printf("2. Menu\n");
  157.     printf("3. Exit\n");
  158.     printf("Choose an option.\n");
  159.     int d;
  160.     scanf("%d", &d);
  161.     switch(d)
  162.     {
  163.     case 1:
  164.         {
  165.         add();
  166.         break;
  167.         }
  168.     case 2:
  169.         {
  170.         menu();
  171.         break;
  172.         }
  173.     case 3:
  174.         {
  175.             exit(0);
  176.             break;
  177.         }
  178.  
  179.     default:
  180.         {
  181.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  182.             menu();
  183.         }
  184.     }
  185. }
  186.  
  187. int add()
  188. {
  189.     printf("\n1. Add at First.\n");
  190.     printf("2. Add at Last\n");
  191.     printf("3. Add at Nth Position\n");
  192.     printf("4. Go to Back\n");
  193.     int e;
  194.     scanf("%d", &e);
  195.      switch(e)
  196.     {
  197.     case 1:
  198.         {
  199.         insert_at_first();
  200.         break;
  201.         }
  202.     case 2:
  203.         {
  204.         insert_at_last();
  205.         break;
  206.         }
  207.     case 3:
  208.         {
  209.             insert_at_nth();
  210.             break;
  211.         }
  212.          case 4:
  213.         {
  214.         menu();
  215.         break;
  216.         }
  217.  
  218.     default:
  219.         {
  220.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  221.             add();
  222.         }
  223.     }
  224. }
  225.  
  226. int delete_by_pos()
  227. {
  228.     int n;
  229.     printf("Enter the Position:\n");
  230.     scanf("%d", &n);
  231.     node *list=head, *temp;
  232.     if(n==1)
  233.     {
  234.         head=list->next;
  235.         free(list);
  236.     }
  237.     else
  238.     {
  239.         n=n-2;
  240.         while(n!=0)
  241.         {
  242.             list=list->next;
  243.             n--;
  244.         }
  245.         temp=list->next;
  246.         list->next=temp->next;
  247.         free(temp);
  248.     }
  249.     printf("1.\n\nMenu\n");
  250.     printf("2.Exit\n");
  251.     printf("Choose a Option:");
  252.     int f;
  253.     scanf("%d",&f);
  254.     switch(f)
  255.     {
  256.  
  257.     case 1:
  258.     {
  259.         menu();
  260.         break;
  261.     }
  262.     case 2:
  263.     {
  264.         exit(0);
  265.     }
  266.     default:
  267.     {
  268.         printf("You've chosen a wrong option!! Choose the correct one:\n");
  269.         menu();
  270.         }
  271.     }
  272. }
  273.  
  274. int delete_by_value()
  275. {
  276.     int n;
  277.     printf("Enter the value:\n");
  278.     scanf("%d", &n);
  279.  
  280.     node *list=head;
  281.     if(list->a==n)
  282.     {
  283.         head=list->next;
  284.         free(list);
  285.     }
  286.     else
  287.     {
  288.         node *list=head, *temp;
  289.         while(list->next->a!=n)
  290.         {
  291.             list=list->next;
  292.         }
  293.         temp=list->next;
  294.         list->next=temp->next;
  295.         free(temp);
  296.     }
  297.     printf("1.\n\nMenu\n");
  298.     printf("2.Exit\n");
  299.     printf("Choose a Option:");
  300.     int g;
  301.     scanf("%d",&g);
  302.     switch(g)
  303.     {
  304.  
  305.     case 1:
  306.     {
  307.         menu();
  308.         break;
  309.     }
  310.     case 2:
  311.     {
  312.         exit(0);
  313.     }
  314.     default:
  315.     {
  316.         printf("You've chosen a wrong option!! Choose the correct one:\n");
  317.         menu();
  318.         }
  319.     }
  320. }
  321.  
  322. int Delete()
  323. {
  324.     printf("\n1. Delete by Position\n");
  325.     printf("2. Delete by Value\n");
  326.     printf("3. Go to Back\n");
  327.  
  328.     int h;
  329.     scanf("%d", &h);
  330.     switch(h)
  331.     {
  332.     case 1:
  333.         {
  334.         delete_by_pos();
  335.         break;
  336.         }
  337.     case 2:
  338.         {
  339.         delete_by_value();
  340.         break;
  341.         }
  342.     case 3:
  343.         {
  344.             menu();
  345.             break;
  346.         }
  347.  
  348.     default:
  349.         {
  350.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  351.             Delete();
  352.         }
  353.     }
  354. }
  355.  
  356. int search_by_pos()
  357. {
  358.     int n;
  359.     printf("Enter the Position:\n");
  360.     scanf("%d", &n);
  361.     node *list=head;
  362.     if(n==1)
  363.     {
  364.         printf("\nName: %s\n", list->ch);
  365.         printf("Roll: %d\n", &list->a);
  366.     }
  367.     else
  368.     {
  369.         n=n-2;
  370.         while(n--)
  371.         {
  372.             list=list->next;
  373.         }
  374.         printf("\nName: %s\n", list->next->ch);
  375.         printf("Roll: %d\n", &list->next->a);
  376.     }
  377.     printf("\n1. Menu\n");
  378.     printf("2. Exit\n");
  379.     int i;
  380.     scanf("%d",&i);
  381.     switch(i)
  382.     {
  383.  
  384.     case 1:
  385.     {
  386.         menu();
  387.         break;
  388.     }
  389.     case 2:
  390.     {
  391.         exit(0);
  392.         break;
  393.     }
  394.     default:
  395.         {
  396.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  397.             menu();
  398.         }
  399.     }
  400. }
  401.  
  402. int search_by_value()
  403. {
  404.     int n;
  405.     printf("Enter the Value:\n");
  406.     scanf("%d", &n);
  407.     node *list=head;
  408.     while(1)
  409.     {
  410.     if(list->a==n)
  411.     {
  412.         printf("\nName: %s\n", list->ch);
  413.         printf("Roll: %d\n", &list->a);
  414.         break;
  415.     }
  416.     list=list->next;
  417.     }
  418.      printf("\n1. Menu\n");
  419.     printf("2. Exit\n");
  420.     int j;
  421.     scanf("%d",&j);
  422.     switch(j)
  423.     {
  424.  
  425.     case 1:
  426.     {
  427.         menu();
  428.         break;
  429.     }
  430.     case 2:
  431.     {
  432.         exit(0);
  433.         break;
  434.     }
  435.         default:
  436.         {
  437.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  438.             menu();
  439.         }
  440.     }
  441. }
  442.  
  443. int search()
  444. {
  445.     printf("\n1. Search by Position\n");
  446.     printf("2. Search by Value\n");
  447.     printf("3. Go to Back\n");
  448.  
  449.     int k;
  450.     scanf("%d", &k);
  451.     switch(k)
  452.     {
  453.     case 1:
  454.         {
  455.         search_by_pos();
  456.         break;
  457.         }
  458.     case 2:
  459.         {
  460.         search_by_value();
  461.         break;
  462.         }
  463.     case 3:
  464.         {
  465.             menu();
  466.             break;
  467.         }
  468.  
  469.     default:
  470.         {
  471.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  472.             search();
  473.         }
  474.     }
  475. }
  476.  
  477. int display()
  478. {
  479.     node*list=head;
  480.     if(head==NULL)
  481.     {
  482.         printf("\nList is empty!!\n");
  483.         printf("Add data first!!\n");
  484.         printf("1. Menu\n");
  485.         printf("2. Exit\n");
  486.         printf("Choose any option:\n");
  487.         int p;
  488.         scanf("%d",&p);
  489.         switch(p)
  490.         {
  491.             case 1:
  492.         {
  493.             menu();
  494.             break;
  495.         }
  496.         case 2:
  497.         {
  498.             exit(0);
  499.         }
  500.         default:
  501.         {
  502.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  503.             display();
  504.         }
  505.         }
  506.     }
  507.     else
  508.     {
  509.         while(list!=NULL)
  510.         {
  511.             printf("\nName: %s\n",list->ch);
  512.             printf("Roll: %d\n",list->a);
  513.             list=list->next;
  514.         }
  515.         printf("\n1. Menu\n");
  516.         printf("2. Exit\n");
  517.         printf("Choose any option:\n");
  518.         int p;
  519.         scanf("%d",&p);
  520.         switch(p)
  521.         {
  522.             case 1:
  523.         {
  524.             menu();
  525.             break;
  526.         }
  527.         case 2:
  528.         {
  529.             exit(0);
  530.         }
  531.         default:
  532.         {
  533.             printf("You've chosen a wrong option!! Choose the correct one:\n");
  534.             display();
  535.         }
  536.         }
  537.     }
  538. }
  539.  
  540. int menu()
  541. {
  542.     printf("1. Add\n");
  543.     printf("2. Delete\n");
  544.     printf("3. Search\n");
  545.     printf("4. Display\n");
  546.     printf("5. Exit\n");
  547.     printf("Choose any option\n");
  548.     int o;
  549.     scanf("%d", &o);
  550.     switch(o)
  551.     {
  552.     case 1:
  553.     {
  554.         add();
  555.         break;
  556.     }
  557.     case 2:
  558.     {
  559.         Delete();
  560.         break;
  561.     }
  562.     case 3:
  563.     {
  564.         search();
  565.         break;
  566.     }
  567.     case 4:
  568.     {
  569.         display();
  570.         break;
  571.     }
  572.     case 5:
  573.     {
  574.         exit(0);
  575.         break;
  576.     }
  577.     default:
  578.     {
  579.         printf("CHOOSE A CORRECT OPTION\n");
  580.         menu();
  581.     }
  582.     }
  583. }
  584.  
  585. int main()
  586. {
  587.     printf("..........!!Singly Link list!!........\n");
  588.     menu();
  589.     return 0;
  590. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement