Advertisement
Josif_tepe

Untitled

Dec 12th, 2024
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. struct node {
  7.     int val;
  8.     node * next;
  9. };
  10.  
  11. struct SLL {
  12.     node * head;
  13.    
  14.     void init() {
  15.         head = NULL;
  16.     }
  17.    
  18.     void insertFirst(int val) {
  19.         node * new_node = new node;
  20.         new_node->val = val;
  21.        
  22.         if(head == NULL) {
  23.             head = new_node;
  24.         }
  25.         else {
  26.             new_node->next = head;
  27.             head = new_node;
  28.         }
  29.     }
  30.    
  31.     void insertLast(int val) {
  32.         node * new_node = new node;
  33.         new_node->val = val;
  34.        
  35.         if(head == NULL) {
  36.             head = new_node;
  37.         }
  38.         else if(head->next == NULL) {
  39.             head->next = new_node;
  40.             new_node->next = NULL;
  41.         }
  42.         else {
  43.             node * tmp = head;
  44.             while(tmp->next != NULL) {
  45.                 tmp = tmp->next;
  46.             }
  47.             tmp->next = new_node;
  48.             new_node->next = NULL;
  49.         }
  50.     }
  51.    
  52.     void deleteFirst() {
  53.         if(head != NULL) {
  54.             if(head->next == NULL) {
  55.                 delete head;
  56.                 head = NULL;
  57.             }
  58.             else {
  59.                 node * tmp = head;
  60.                 head = head->next;
  61.                 delete tmp;
  62.             }
  63.         }
  64.     }
  65.     void deleteLast() {
  66.         if(head != NULL) {
  67.             if(head -> next == NULL) {
  68.                 delete head;
  69.                 head =  NULL;
  70.             }
  71.             else {
  72.                 node * tmp = head;
  73.                 while(tmp -> next -> next != NULL) {
  74.                     tmp = tmp->next;
  75.                 }
  76.                 node * tmp2 = tmp->next;
  77.                 delete tmp2;
  78.                 tmp->next = NULL;
  79.             }
  80.         }
  81.     }
  82.     void print() {
  83.         node * tmp = head;
  84.         while(tmp != NULL) {
  85.             cout << tmp->val << " --> ";
  86.             tmp = tmp->next;
  87.         }
  88.         cout << endl;
  89.     }
  90. };
  91. int main()
  92. {
  93.     SLL sll;
  94.     sll.init();
  95.    
  96.     sll.insertFirst(1);
  97.     sll.insertFirst(2);
  98.     sll.insertFirst(3);
  99.     sll.print();
  100.    
  101.     sll.insertLast(4);
  102.     sll.insertLast(5);
  103.     sll.insertLast(6);
  104.    
  105.     sll.print();
  106.    
  107.    
  108.     sll.deleteFirst();
  109.     sll.deleteLast();
  110.     sll.print();
  111.    
  112.    
  113.    
  114.    
  115.     return 0;
  116.  
  117. }
  118.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement