Vla_DOS

списки

Jun 10th, 2022
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class node {
  5. public:
  6.     int data;
  7.     node* next;
  8.  
  9.     node(int value)
  10.     {
  11.         data = value;
  12.         next = NULL;
  13.     }
  14. };
  15.  
  16. void insertathead(node*& head, int val)
  17. {
  18.     node* n = new node(val);
  19.     n->next = head;
  20.     head = n;
  21. }
  22.  
  23. void insertafter(node* head, int key, int val)
  24. {
  25.     node* n = new node(val);
  26.     if (key == head->data) {
  27.         n->next = head->next;
  28.         head->next = n;
  29.         return;
  30.     }
  31.  
  32.     node* temp = head;
  33.     while (temp->data != key) {
  34.         temp = temp->next;
  35.         if (temp == NULL) {
  36.             return;
  37.         }
  38.     }
  39.     n->next = temp->next;
  40.     temp->next = n;
  41. }
  42.  
  43. void insertattail(node*& head, int val)
  44. {
  45.     node* n = new node(val);
  46.     if (head == NULL) {
  47.         head = n;
  48.         return;
  49.     }
  50.  
  51.     node* temp = head;
  52.     while (temp->next != NULL) {
  53.         temp = temp->next;
  54.     }
  55.     temp->next = n;
  56. }
  57.  
  58. void print(node*& head)
  59. {
  60.     node* temp = head;
  61.  
  62.     while (temp != NULL) {
  63.         cout << temp->data << " ";
  64.         temp = temp->next;
  65.     }
  66. }
  67.  
  68. int main()
  69. {
  70.     setlocale(0, "");
  71.     node* head = NULL; 
  72.     int size = 30;
  73.     int* arr = new int[size];
  74.     for (int i = 0; i < size; i++)
  75.         arr[i] = rand() % 20;
  76.  
  77.     for (int i = 0; i < size; i++)
  78.         insertathead(head, arr[i]);
  79.     print(head);
  80.  
  81.     int key, val;
  82.     cout << "\nВкажiть ключ: ";
  83.     cin >> key;
  84.     cout << "\nВкажiть елемент: ";
  85.     cin >> val;
  86.  
  87.     insertafter(head, key, val);
  88.     cout << "\nПiсля вставки нового елемента: " << endl;
  89.     print(head);
  90.     cout << endl;
  91.  
  92.     return 0;
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment