193030

SAA VIII. Zadacha 1

Oct 27th, 2020
929
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Задача VIII.1:
  3.     Да се създаде и изведе на екрана на едносвързан списък от цели числа
  4.     чрез рекурсивни процедури/функции.
  5. */
  6.  
  7. // Add numbers is not recursive
  8. #include <iostream>
  9. #include <bits/stdc++.h>
  10.  
  11. struct Node
  12. {
  13.     int numberCount;
  14.     int data;
  15.     struct Node* next;
  16. } *first = NULL, *last = NULL;
  17. using namespace std;
  18.  
  19. void addNumbers(int x) // if number is repeated then the numberCount != 1
  20. {
  21.     if(first == NULL)
  22.     {
  23.         first = new  Node;
  24.         first->data = x;
  25.         first->next = NULL;
  26.         first->numberCount = 1;
  27.         last = first;
  28.     }
  29.     else
  30.     {
  31.         int numberExist = 1;
  32.         struct Node*p = first;
  33.         while(p)
  34.         {
  35.             if(p->data == x)
  36.             {
  37.                 p->numberCount = p->numberCount + 1;
  38.                 numberExist = 0;
  39.                 break;
  40.             }
  41.             p =p->next;
  42.         }
  43.         if(numberExist)
  44.         {
  45.             Node *t = new Node;
  46.             t->data = x;
  47.             t->next = NULL;
  48.             t->numberCount = 1;
  49.             last->next = t;
  50.             last = t;
  51.         }
  52.  
  53.     }
  54. }
  55.  
  56.  
  57.  
  58. void displayList(struct Node *p) // recursive
  59. {
  60.     if(p)
  61.     {
  62.         cout << p->data << " ";
  63.         displayList(p->next);
  64.     }
  65.     cout << endl;
  66.  
  67. }
  68.  
  69.  
  70. int main()
  71. {
  72.     // add numbers is not recursive
  73.     addNumbers(2);
  74.     addNumbers(3);
  75.     addNumbers(4);
  76.     displayList(first);
  77.  
  78.  
  79. }
  80.  
RAW Paste Data