fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. void begininsert();
  4. void endinsert();
  5. void specificinsert();
  6. void begindelete();
  7. void enddelete();
  8. void specificdelete();
  9. struct Node
  10. {
  11. int Data;
  12. struct Node *Next;
  13. };
  14. struct Node *head,*temp;
  15. int main()
  16. {
  17. struct Node *newnode;
  18. head=NULL;
  19. int ch=1,choice;
  20. while(ch==1)
  21. {
  22. newnode=(struct Node*)malloc(sizeof(struct Node));
  23. printf("Enter the value for linked list creation\n");
  24. scanf("%d",&newnode->Data);
  25. newnode->Next=NULL;
  26. if(head==NULL)
  27. {
  28. head=temp=newnode;
  29. }
  30. else
  31. {
  32. temp->Next=newnode;
  33. temp=newnode;
  34. }
  35. printf("DO YOU WANT TO CONTINUE\n");
  36. scanf("%d",&ch);
  37. }
  38.  
  39. printf("Enter the choice for ur insertion:\n");
  40. scanf("%d",&choice);
  41. switch(choice)
  42. {
  43. case 1:
  44. begininsert();
  45. break;
  46. case 2:
  47. endinsert();
  48. break;
  49. case 3:
  50. specificinsert();
  51. break;
  52. case 4:
  53. begindelete();
  54. break;
  55. case 5:
  56. enddelete();
  57. break;
  58. case 6:
  59. specificdelete();
  60. break;
  61. default:
  62. printf("Enter correct choice");
  63. break;
  64. }
  65. return 0;
  66. }
  67. void begininsert()
  68. {
  69. struct Node *newnode;
  70. newnode=(struct Node*)malloc(sizeof(struct Node));
  71. printf("Enter the value for the new node:\n");
  72. scanf("%d",&newnode->Data);
  73. newnode->Next=head;
  74. head=newnode;
  75. temp=head;
  76. while(temp!=NULL)
  77. {
  78. printf("\n%d",temp->Data);
  79. temp=temp->Next;
  80. }
  81. }
  82. void endinsert()
  83. {
  84. struct Node *newnode;
  85. newnode=(struct Node*)malloc(sizeof(struct Node));
  86. printf("Enter the value for the new node:\n");
  87. scanf("%d",&newnode->Data);
  88. newnode->Next=NULL;
  89. temp=head;
  90. while(temp->Next!=NULL)
  91. {
  92. temp=temp->Next;
  93. }
  94. temp->Next=newnode;
  95. temp=head;
  96. while(temp!=NULL)
  97. {
  98. printf("\n%d",temp->Data);
  99. temp=temp->Next;
  100. }
  101. }
  102. void specificinsert()
  103. {
  104. struct Node *newnode;
  105. int pos,i=1;
  106. newnode=(struct Node*)malloc(sizeof(struct Node));
  107. printf("Enter the value for the new node:\n");
  108. scanf("%d",&newnode->Data);
  109. newnode->Next=NULL;
  110. printf("Enter the position to insert:\n");
  111. scanf("%d",&pos);
  112.  
  113. temp=head;
  114. while(i<pos-1)
  115. {
  116. temp=temp->Next;
  117. i++;
  118. }
  119. newnode->Next=temp->Next;
  120. temp->Next=newnode;
  121. temp=head;
  122. while(temp!=NULL)
  123. {
  124. printf("\n%d",temp->Data);
  125. temp=temp->Next;
  126. }
  127. }
  128. void begindelete()
  129. {
  130. struct Node *display;
  131. temp=head;
  132. head=head->Next;
  133. free(temp);
  134. display=head;
  135. while(display!=NULL)
  136. {
  137. printf("\n%d",display->Data);
  138. display=display->Next;
  139. }
  140. }
  141. void enddelete()
  142. {
  143. struct Node *display,*prev;
  144. temp=head;
  145. prev=NULL;
  146. while(temp->Next!=NULL)
  147. {
  148. prev=temp;
  149. temp=temp->Next;
  150. }
  151. prev->Next=NULL;
  152. free(temp);
  153. display=head;
  154. while(display!=NULL)
  155. {
  156. printf("\n%d",display->Data);
  157. display=display->Next;
  158. }
  159. }
  160. void specificdelete()
  161. {
  162. struct Node *delNode,*display;
  163. int pos,i=1;
  164. printf("Enter the position to delete:\n");
  165. scanf("%d",&pos);
  166. temp=head;
  167.  
  168. while(i<pos-1)
  169. {
  170. temp=temp->Next;
  171. i++;
  172. }
  173. delNode=temp->Next;
  174. temp->Next=delNode->Next;
  175. free(delNode);
  176. display=head;
  177. while(display!=NULL)
  178. {
  179. printf("\n%d",display->Data);
  180. display=display->Next;
  181. }
  182.  
  183. }
  184.  
Success #stdin #stdout 0s 5504KB
stdin
5
1
10
1
15
1
20
0
5
stdout
Enter the value for linked list creation
DO YOU WANT TO CONTINUE
Enter the value for linked list creation
DO YOU WANT TO CONTINUE
Enter the value for linked list creation
DO YOU WANT TO CONTINUE
Enter the value for linked list creation
DO YOU WANT TO CONTINUE
Enter the choice for ur insertion:

5
10
15