juyana

deletion in linked list

Mar 12th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. class node
  5. {
  6. public:
  7. int info;
  8. node *link;
  9. };
  10. node *head=NULL,*temp,*ex;
  11. int creat_list(int data)
  12. {
  13. node * ptr;
  14. ptr=new node();
  15. ptr->info=data;
  16. ptr->link=NULL;
  17. if(head==NULL)
  18. {
  19. head=ptr;
  20. temp=ptr;
  21. }
  22. else
  23. {
  24. temp->link=ptr;
  25. temp=ptr;
  26. }
  27. }
  28. int first_delete()
  29. {
  30. node *srt;
  31. srt=head;
  32. srt=srt->link;
  33. head=srt;
  34. }
  35. void last_delete()
  36. {
  37. node *srt;
  38. for(srt=head;;)
  39. {
  40. if(srt->link==NULL)
  41. {
  42. temp->link=NULL;
  43. break;
  44. }
  45. else
  46. {
  47. temp=srt;
  48. srt=srt->link;
  49. }
  50. }
  51. }
  52. void delete_item(int data)
  53. {
  54.  
  55. node *srt;
  56. for(srt=head;;)
  57. {
  58. if(srt->info==data)
  59. {
  60. temp->link=srt->link;
  61. break;
  62. }
  63. else
  64. {
  65. temp=srt;
  66. srt=srt->link;
  67. }
  68. }
  69. }
  70. void delete_item_before(int data)
  71. {
  72.  
  73. node *srt;
  74. ex=head;
  75. temp=NULL;
  76. for(srt=head;;)
  77. {
  78. if(srt->info==data)
  79. {
  80. if(ex==head)
  81. head=srt;
  82. ex->link=srt;
  83. break;
  84. }
  85. else
  86. {
  87. if(temp!=NULL)
  88. ex=temp;
  89. temp=srt;
  90. srt=srt->link;
  91.  
  92. }
  93. }
  94. }
  95. void delete_item_after(int data)
  96. {
  97.  
  98. node *srt;
  99. for(srt=head;;)
  100. {
  101. if(srt->info==data)
  102. {
  103. srt=srt->link;
  104. temp->link=srt->link;
  105. break;
  106. }
  107. else
  108. {
  109. srt=srt->link;
  110. temp=srt;
  111. }
  112. }
  113. }
  114. void print()
  115. {
  116. node *srt;
  117. srt=head;
  118. while(srt!=NULL)
  119. {
  120. cout<<srt->info;
  121. srt=srt->link;
  122. }
  123. }
  124. int main()
  125. {
  126. int n,item,x;
  127. cin>>n;
  128. for(int i=0; i<n; i++)
  129. {
  130. cin>>item;
  131. creat_list(item);
  132. }
  133. print();
  134. cout<<"\nafter deleting the 1st element"<<endl;
  135. first_delete();
  136. print();
  137. cout<<"\nafter deleting the last element"<<endl;
  138. last_delete();
  139. print();
  140. cout<<"\nenter the element to be deleted"<<endl;
  141. cin>>x;
  142. cout<<"\nafter deleting the given element"<<endl;
  143. delete_item(x);
  144. print();
  145. cout<<"\nenter the element the previous element of which should be deleted"<<endl;
  146. cin>>x;
  147. cout<<"\nafter deleting the element before the given element"<<endl;
  148. delete_item_before(x);
  149. print();
  150. cout<<"\nenter the element the next element of which should be deleted"<<endl;
  151. cin>>x;
  152. cout<<"\nafter deleting the element after the given element"<<endl;
  153. delete_item_after(x);
  154. print();
  155. }
Advertisement
Add Comment
Please, Sign In to add comment