fork download
  1.  
  2. #include<bits/stdc++.h>
  3. #include<iostream>
  4. using namespace std;
  5. #define int long long
  6. #define endl "\n"
  7. void fastIO(void) {
  8. ios_base::sync_with_stdio(false);
  9. cin.tie(NULL);
  10. cout.tie(NULL);
  11. }
  12. class node{
  13. public:
  14. int data;
  15. node*next;
  16. };
  17. class linked_list{
  18. public:
  19. node*head=NULL;
  20. void insert_first(int value){
  21. node*newnode=new node();
  22. newnode->data=value;
  23.  
  24. if(head==NULL){
  25. newnode->next=NULL;
  26. head=newnode;
  27.  
  28. }else{
  29. newnode->next=head;
  30. head=newnode;
  31.  
  32. }
  33.  
  34.  
  35.  
  36. }
  37. void inseert_last(int value){
  38. node*newnode=new node();
  39. newnode->data=value;
  40. if(head==NULL){
  41. newnode->next=NULL;
  42. head=newnode;
  43.  
  44. }else{
  45. node*temp=head;
  46. while(temp->next!=NULL){
  47. temp=temp->next;
  48. }
  49. temp->next=newnode;
  50. newnode->next=NULL;
  51.  
  52. }
  53.  
  54. }
  55. void inseert_before(int value,int element){
  56. node*newnode=new node();
  57. newnode->data=value;
  58. if(head==NULL){
  59. newnode->next=NULL;
  60. head=newnode;
  61.  
  62. }else{
  63. node*temp=head;
  64. while(temp!=NULL){
  65.  
  66. if(temp->next->data==element){
  67. newnode->next=temp->next;
  68. temp->next=newnode;
  69. return;
  70.  
  71. }
  72. temp=temp->next;
  73. }
  74.  
  75.  
  76. }
  77.  
  78.  
  79. }
  80. void insert_after(int value,int element){
  81. node*newnode=new node();
  82. newnode->data=value;
  83. if(head==NULL){
  84. newnode->next=NULL;
  85. head=newnode;
  86. }else{
  87. node*temp=head;
  88. while(temp!=NULL){
  89. if(temp->data==element){
  90. newnode->next=temp->next;
  91. temp->next=newnode;
  92. return;
  93.  
  94. }
  95. temp=temp->next;
  96.  
  97. }
  98. }
  99. }
  100. void delete_last(){
  101. if(head==NULL){
  102. cout<<"empty";
  103. }else{
  104. node*temp=head;
  105. while(temp->next->next!=NULL){
  106. temp=temp->next;
  107. }
  108. node*del=temp->next;
  109. temp->next=NULL;
  110. delete del;
  111.  
  112.  
  113. }
  114.  
  115.  
  116.  
  117.  
  118. }
  119. void delete_first(){
  120. if(head==NULL){
  121. cout<<"empty";
  122. }else{
  123. node*temp=head;
  124. head=head->next;
  125. delete temp;
  126.  
  127.  
  128.  
  129. }
  130.  
  131.  
  132.  
  133. }
  134. void countt(){
  135. int counter=0;
  136. if(head==NULL){
  137. cout<<"empty";
  138. }else{
  139. node*temp=head;
  140. while(temp!=NULL){
  141. counter++;
  142. temp=temp->next;
  143.  
  144. }
  145. cout<< "\n count is :"<<counter<<endl;;
  146.  
  147.  
  148. }
  149.  
  150.  
  151.  
  152. }
  153. bool searchh(int value){
  154. if(head==NULL){
  155. cout<<"empty";
  156. }else{
  157. node*temp=head;
  158. while(temp!=NULL){
  159. if(temp->data==value){
  160. return true;
  161. }
  162. temp=temp->next;
  163. }
  164. return false;
  165.  
  166.  
  167. }
  168.  
  169.  
  170.  
  171. }
  172. int mini(){
  173. if(head==NULL){
  174. cout<<"empty";
  175. }else{
  176. int mi=head->data;
  177. node*temp=head;
  178. while(temp!=NULL){
  179. if(temp->data<mi){
  180. mi=temp->data;
  181. }
  182. temp=temp->next;
  183. }
  184. return mi;
  185.  
  186.  
  187. }
  188.  
  189.  
  190.  
  191. }
  192. void peek(){
  193. if(head==NULL){
  194. cout<<"empty";
  195. }else{
  196.  
  197. cout<<head->data<<endl;;
  198. }
  199.  
  200.  
  201.  
  202. }
  203. void display(){
  204. if(head==NULL){
  205. cout<<"empty";
  206. }else{
  207. node*temp=head;
  208. while(temp!=NULL){
  209. cout<<temp->data << " ";
  210. temp=temp->next;
  211. }
  212. cout<< "NULL : ) ";
  213.  
  214.  
  215. }
  216.  
  217.  
  218. }
  219.  
  220. };
  221.  
  222. signed main() {
  223.  
  224. linked_list ll;
  225. ll.insert_first(15);
  226. ll.insert_first(25);
  227. ll.insert_first(35);
  228. ll.insert_first(45);
  229.  
  230. ll.inseert_last(20);
  231. ll.inseert_before(555,35);
  232. ll.insert_after(300,25);
  233.  
  234. ll.delete_first();
  235. ll.delete_last();
  236. ll.countt();
  237. ll.peek();
  238. cout<<ll.searchh(5)<<endl;;
  239. cout<<ll.mini()<<endl;
  240. ll.display();
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249. }
  250.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
 count is :5
555
0
15
555 35 25 300 15 NULL : )