Thursday, 15 November 2018

WRITE DOWN A C PROGRAM TO INSERT IN BEGINNING & END, DELETE A NODE IN BEGINNING & END, TRAVERSE FOR THE CIRCULAR - SINGLY LINKED LIST (C-SLL) AND ALSO MODIFY A SPECIFIED NODE FOR THE CIRCULAR - SINGLY LINKED LIST (C-SLL) USING GLOBAL START VARIABLE & CALL BY REFERENCE & BY USING THE SWITCH CASE.

WRITE DOWN A C PROGRAM TO INSERT IN BEGINNING & END, DELETE A NODE IN BEGINNING & END, TRAVERSE FOR THE CIRCULARSINGLY LINKED LIST (C-SLL) AND ALSO MODIFY A SPECIFIED NODE FOR THE CIRCULAR - SINGLY LINKED LIST (C-SLL) USING GLOBAL START VARIABLE & CALL BY REFERENCE & BY USING THE SWITCH CASE.


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. struct node 
  5. {
  6. int data;
  7. struct node *next;
  8. };
  9. struct node *start=NULL;
  10. void create_nodebegining(int);
  11. void create_nodeend(int);
  12. void delete_nodebegining();
  13. void delete_nodeend();
  14. void modify(int,int);
  15. void traverse();
  16. int main()
  17. {
  18. int data,i,n,ch,data1;
  19. printf("\n Enter The Value of data to be Entered:\n");
  20. scanf("%d",&n);
  21. for(i=0;i<n;i++)
  22. {
  23. printf("\n Enter The Value Should be Enter In Data of Node:\n");
  24. scanf("%d",&data);
  25. create_nodeend(data);
  26. }
  27. printf("\n Please Enter Your Choise \n ");
  28. printf("\n Press 1 for Insert in Beginning \n Press 2 for Insert in end \n Press 3 Delete in Beginning \n Press 4 for delete in end \n Press 5 for modify \n press 6 for traverse \n");
  29. scanf("%d",&ch);
  30. switch(ch)
  31. {
  32. case 1:
  33. printf("\n Enter The Value For Node Data:\n");
  34. scanf("%d",&data);
  35. create_nodebegining(data);
  36. break;
  37. case 2:
  38. printf("\n Enter The Value For Node Data:\n");
  39. scanf("%d",&data);
  40. create_nodeend(data);
  41. break;
  42. case 3:
  43. delete_nodebegining();
  44. break;
  45. case 4:
  46. delete_nodeend();
  47. break;
  48. case 5:
  49. printf("\n Enter The Data To be Modified:\n");
  50. scanf("%d",&data1);
  51. printf("\n Enter The Data Modified:\n");
  52. scanf("%d",&data);
  53. modify(data1,data);
  54. break;
  55. case 6:
  56. traverse();
  57. break;
  58. }
  59. traverse();
  60. }
  61. void create_nodeend(int x)
  62. {
  63. struct node *t,*t1;
  64. t=(struct node*)malloc(sizeof(struct node));
  65. t->data=x;
  66. t->next=NULL;
  67. if(start==NULL)
  68. {
  69. start=t;
  70. t->next=start;
  71. }
  72. else
  73. {
  74. t1=start;
  75. while(t1->next!=start)
  76. {
  77. t1=t1->next;
  78. }
  79. t->next=start;
  80. t1->next=t;
  81. }
  82. }
  83. void create_nodebegining(int x)
  84. {
  85. struct node *t,*t1;
  86. t=(struct node*)malloc(sizeof(struct node));
  87. t1=start;
  88. t->data=x;
  89. t->next=t1;
  90. while(t1->next!=start)
  91. {
  92. t1=t1->next;
  93. }
  94. start=t;
  95. t1->next=start;
  96. traverse();
  97. }
  98. void delete_nodeend()
  99. {
  100. struct node *t,*t1;
  101. t=start;
  102. while(t->next!=start)
  103. {
  104. t1=t;
  105. t=t->next;
  106. }
  107. free(t);
  108. t1->next=start;
  109. traverse();
  110. }
  111. void delete_nodebegining()
  112. {
  113. struct node *t,*t1=start;
  114. t=start->next;
  115. while(t1->next!=start)
  116. {
  117. t1=t1->next;
  118. }
  119. free(start);
  120. start=t;
  121. t1->next=start;
  122. traverse();
  123. }
  124. void modify(int x,int y)
  125. {
  126. struct node *t;
  127. t=start;
  128. while(t->data!=x)
  129. {
  130. t=t->next;
  131. }
  132. t->data=y;
  133. traverse();
  134. }
  135. void traverse()
  136. {
  137. struct node *t;
  138. t=start;
  139. while(t->next!=start)
  140. {
  141. printf("\n %d",t->data);
  142. t=t->next;
  143. }
  144. printf("\n %d\n\n",t->data);
  145. }

No comments:

Post a Comment