193030

SAA VII. Zadacha 4

Oct 27th, 2020 (edited)
139
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None
  1. /*
  2.     Да се разработи процедура, която извежда на екрана всички неповтарящи
  3. се елементи на линеен едносвързан списък Head от цели числа.
  4. */
  5.  
  6. #include <iostream>
  7. #include <bits/stdc++.h>
  8.  
  9. struct Node
  10. {
  11.     int numberCount;
  12.     int data;
  13.     struct Node* next;
  14. } *first = NULL, *last = NULL;
  15. using namespace std;
  16.  
  17. void addNumbers(int x) // if number is repeated then the numberCount != 1
  18. {
  19.     if(first == NULL)
  20.     {
  21.         first = new  Node;
  22.         first->data = x;
  23.         first->next = NULL;
  24.         first->numberCount = 1;
  25.         last = first;
  26.     }
  27.     else
  28.     {
  29.         int numberExist = 1;
  30.         struct Node*p = first;
  31.         while(p)
  32.         {
  33.             if(p->data == x)
  34.             {
  35.                 p->numberCount = p->numberCount + 1;
  36.                 numberExist = 0;
  37.                 break;
  38.             }
  39.             p =p->next;
  40.         }
  41.         if(numberExist)
  42.         {
  43.             Node *t = new Node;
  44.             t->data = x;
  45.             t->next = NULL;
  46.             t->numberCount = 1;
  47.             last->next = t;
  48.             last = t;
  49.         }
  50.  
  51.     }
  52. }
  53.  
  54. void displayList(struct Node *p)
  55. {
  56.     while(p)
  57.     {
  58.         cout << p->data << " ";
  59.         p = p->next;
  60.     }
  61. }
  62. void countNumber(struct Node *p)
  63. {
  64.     int numberOfElements = 0;
  65.     while(p)
  66.     {
  67.         p = p->next;
  68.         numberOfElements++;
  69.     }
  70.     cout << "The number of elements in the list is: " << numberOfElements << endl;
  71. }
  72.  
  73. void countSpecificNumbers(struct Node *p, int specifiedNumber)
  74. {
  75.     int numberOfElements = 0;
  76.     while(p)
  77.     {
  78.        if(p->data == specifiedNumber)
  79.             numberOfElements++;
  80.         p = p->next;
  81.  
  82.     }
  83.     cout << "The number of elements with value "<< specifiedNumber << " in the list is: " << numberOfElements << endl;
  84. }
  85.  
  86. void findMaxList(struct Node*p)
  87. {
  88.     int maxNumber = INT_MIN;
  89.     while(p)
  90.     {
  91.        if(p->data > maxNumber)
  92.             maxNumber = p->data;
  93.         p = p->next;
  94.  
  95.     }
  96.     cout << "The maximum number is "<< maxNumber << endl;
  97. }
  98.  
  99. void displayNonrepeatedNumbers(struct Node*p)
  100. {
  101.     cout << "Numbers that doesn't repeat " << endl;
  102.     while(p)
  103.     {
  104.         if(p->numberCount == 1)
  105.         {
  106.             cout << p->data << " ";
  107.         }
  108.         p = p->next;
  109.     }
  110. }
  111.  
  112. int main()
  113. {
  114.     addNumbers(1);
  115.     addNumbers(2);
  116.     addNumbers(2);
  117.     addNumbers(4);
  118.     displayList(first);
  119.     findMaxList(first);
  120.     displayNonrepeatedNumbers(first);
  121.  
  122. }
  123.  
RAW Paste Data Copied