Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. // обязательно!
  7. struct Node {
  8.     int item;
  9.     Node*next;
  10.  
  11.     Node (int a) {
  12.         item = a;
  13.         next = NULL;
  14.     }
  15.  
  16.     Node(int a, Node*n) {
  17.         item = a;
  18.         next = n;
  19.     }
  20.  
  21.  
  22. };
  23. //
  24.  
  25.  
  26. // Вывод списка
  27. void printlist(Node*head) {
  28.     for (; head!=NULL; head = head->next) {
  29.         cout << head->item << "->";
  30.     }
  31. }
  32.  
  33. // Добавляем в конец списка
  34. void addEnd(Node*&head, int a) {
  35.     Node*temp = new Node(a);
  36.     if (head == NULL) {
  37.         head = temp;
  38.         return;
  39.     }
  40.  
  41.     Node *current = head;
  42.     while (current->next != NULL) {
  43.         current = current->next;
  44.     }
  45.     current->next = temp;
  46. }
  47.  
  48. // Стирание списка
  49. void deleteList(Node*&head) {
  50.     Node*h = head;
  51.     Node*temp;
  52.     while (h) {
  53.         temp = h;
  54.         h = h->next;
  55.         delete temp;
  56.     }
  57.     head = NULL;
  58. }
  59.  
  60. //Уберем узел - элемент списка
  61. int deleteNode(Node*&head, int a) {
  62.     Node*temp;
  63.     if (head->item == a) {
  64.         temp = head;
  65.         head = head->next;
  66.         delete temp;
  67.     }
  68.     Node*h;
  69.     h->next != NULL;
  70.     for (h = head; h->next != NULL && h->next->item != a; h = h->next);
  71.     if (h->next == NULL) return 1;
  72.     temp = h->next;
  73.     h->next = temp->next;
  74.     delete temp;
  75.     return 0;
  76.  
  77. }
  78.  
  79.  
  80.  
  81.  
  82.  
  83. int main()
  84. {
  85.     // Инициализируем и создаем список
  86.      Node*head = NULL;
  87.      Node*temp;
  88.     for (int i = 1; i < 10; i++) {
  89.         temp = new Node(i, head);
  90.         head = temp;
  91.     }
  92.     //
  93.  
  94.     cout << "\n";
  95.  
  96.     // Создание другого списка, правильно переворачиваем его
  97.     Node*head1 = NULL;
  98.     Node*temp1;
  99.     Node*prev = NULL;
  100.  
  101.     for (int i = 1; i < 10; i++) {
  102.         temp1 = new Node(i);
  103.         if (head1 == NULL) {
  104.             head1 = temp1;
  105.         }
  106.         else prev->next = temp1;
  107.             prev = temp1;
  108.    
  109.     }
  110.     //
  111.  
  112.     addEnd(head, 10);
  113.     printlist(head);
  114.  
  115.  
  116.  
  117.     system("pause");
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement