Advertisement
stsharin

Untitled

Mar 3rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct Node {
  5. int data;
  6. struct Node *next;
  7. } node;
  8.  
  9. node *head=NULL;
  10.  
  11. void insert_end(int data) // Insert End !!
  12. {
  13. node *newnode;
  14. newnode=(node*)malloc(sizeof(node));
  15. newnode->data=data;
  16. newnode->next=NULL;
  17. if(head==NULL)
  18. {
  19. head=newnode;
  20. }
  21. else
  22. {
  23. node* current=head;
  24. while(current->next!=NULL)
  25. {
  26. current=current->next;
  27. }
  28. current->next=newnode;
  29. }
  30. }
  31.  
  32. void insert_in_front_of(int data) // Insert Beginning !!
  33. {
  34. node* newnode;
  35. newnode=(node*)malloc(sizeof(node));
  36. newnode->data=data;
  37. newnode->next=head;
  38. head=newnode;
  39. }
  40.  
  41. void insert_any_position(int data) // Insert Any Position !!
  42. {
  43. int count=1,n;
  44. printf("Enter the position: ");
  45. scanf("%d",&n);
  46. node* newnode;
  47. newnode=(node*)malloc(sizeof(node));
  48. newnode->data=data;
  49. newnode->next=NULL;
  50. if(n==1)
  51. {
  52. newnode->next=head;
  53. head=newnode;
  54. }
  55. else
  56. {
  57. node*current=head;
  58. while(count<n-1)
  59. {
  60. current=current->next;
  61. count++;
  62. }
  63. newnode->next=current->next;
  64. current->next=newnode;
  65. }
  66. }
  67. void del() // Delete Data !!
  68. {
  69. int n;
  70. node* current=head;
  71. node* previous;
  72. printf("Which data you want to delete: ");
  73. scanf("%d",&n);
  74. if(head->data==n)
  75. {
  76. head=head->next;
  77. free(current);
  78. }
  79. else
  80. {
  81. while(current!=NULL && current->data!=n)
  82. {
  83. previous=current;
  84. current=current->next;
  85. }
  86. if(current->data==n)
  87. {
  88. previous->next=current->next;
  89. free(current);
  90. }
  91. }
  92. }
  93. del_position() // Delete Position !!
  94. {
  95. node*current=head;
  96. node*previous;
  97. int count=1,n;
  98. printf("Enter the position: ");
  99. scanf("%d",&n);
  100. if(n==1)
  101. {
  102. head=head->next;
  103. free(current);
  104. }
  105. else
  106. {
  107. node*current=head;
  108. while(count<n)
  109. {
  110. previous=current;
  111. current=current->next;
  112. count++;
  113. }
  114. previous->next=current->next;
  115. free(current);
  116. }
  117. }
  118. void update(int data) // Data Update !!
  119. {
  120. node* current=head;
  121. int count=1,n;
  122. printf("Enter the update position: ");
  123. scanf("%d",&n);
  124. while(count<n)
  125. {
  126. current=current->next;
  127. count++;
  128. }
  129. current->data=data;
  130. }
  131.  
  132. void print() // printing data !!
  133. {
  134. node*current=head;
  135. printf("Newlist is: ");
  136. while(current!=NULL)
  137. {
  138. printf("%d ",current->data);
  139. current=current->next;
  140. }
  141. printf("\n\n");
  142. }
  143. void sum() // sum of total data !!
  144. {
  145. node* current=head;
  146. int sum=0;
  147. while(current!=NULL)
  148. {
  149. sum+=current->data;
  150. // sum+=current->data; means, sum = sum + current->data;
  151. current=current->next;
  152. }
  153. printf("Sum Of Total Elements: %d\n",sum);
  154. }
  155. void count() // count total node
  156. {
  157. node* current=head;
  158. int count=0;
  159. while(current!=NULL)
  160. {
  161. count++;
  162. current=current->next;
  163. }
  164. printf("Total Elements Left: %d\n",count);
  165. }
  166.  
  167. int main() // Main Function
  168. {
  169. int i,n,num,t,r,y;
  170. printf("Enter The Elements: ");
  171. scanf("%d",&num);
  172. while(num--)
  173. {
  174. printf("Enter The number: ");
  175. scanf("%d",&n);
  176. printf(" 1.End! 2.In front of!\n");
  177. printf(" 3.Any position! 4.update!\n");
  178. scanf("%d",&t);
  179. if(t==1) insert_end(n);
  180. else if(t==2)insert_in_front_of(n);
  181. else if(t==3) insert_any_position(n);
  182. else if(t==4) update(n);
  183. print();
  184. }
  185. printf("How many data you want to delete: ");
  186. scanf("%d",&r);
  187. printf("\n");
  188. while(r--)
  189. {
  190. printf(" 1.Delete data 2.Delete Position\n");
  191. scanf("%d",&y);
  192. if(y==2) del_position();
  193. if(y==1) del();
  194. print();
  195. }
  196. count();
  197. sum();
  198. return 0;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement