Phoenix_x

Untitled

Apr 2nd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.56 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. struct elem //структура на списъка
  6. {
  7.     int key; //стойност
  8.     elem *next; //следващ елемент
  9. }*start;
  10.  
  11. int counter = 0; //колко пъти се среща елемента
  12. int value = 0; //стойноста на елемента
  13.  
  14. int mostCounter = 0; //Брой на най - често срещан елемент
  15. int mostValie = 0; //стойност на най-често срещан елемент
  16.  
  17. //декларация на функциите
  18. void init();
  19. void add_e(int n);
  20. int search_el(int n);
  21.  
  22. void main()
  23. {
  24.     init(); //инициализация
  25.     cout << "Vavedete chisla za spisaka (0 za kraj): ";
  26.     int number = -1;
  27.  
  28.     while (true) //въвеждане на числата безкрайно на брой пъти
  29.     {
  30.         cin >> number;
  31.  
  32.         if (number == 0) //край на цикъла за въвеждане ако числото е 0
  33.         {
  34.             break;
  35.         }
  36.  
  37.         add_e(number); //добавяне на елемента отдясно в списъка
  38.     }
  39.  
  40.     elem *p1 = start; //елемента (почва се с първия)
  41.  
  42.     while (p1->next) //за всеки елемент от списъка
  43.     {
  44.         search_el(p1->key); //преброй колко пъти се среща и стойноста му
  45.  
  46.         if (counter > mostCounter) { //ако наистина е най-често срещания елемент
  47.             mostCounter = counter; //промени стойностите на променливите
  48.             mostValie = value;
  49.         }
  50.         //зануляване:
  51.         counter = 0;
  52.         value = 0;
  53.        
  54.         p1 = p1->next; //премени към следващия елемент
  55.     }
  56.  
  57.     //извеждане на резултати:
  58.     cout << "Naj - chesto sreshtan: " << mostValie << endl;
  59.     cout << "Povtarq se: " << mostCounter << " na broj pati." << endl;
  60. }
  61.  
  62. void init() //инициализация
  63. {
  64.     start = NULL;
  65. }
  66.  
  67.  
  68. void add_e(int n) //добавяне на елемента в края (отдясно)
  69. {
  70.     elem *p = start, *q;
  71.     q = new elem;
  72.     q->key = n;
  73.     q->next = NULL;
  74.     if (start)
  75.     {
  76.         while (p->next)
  77.             p = p->next;
  78.         p->next = q;
  79.     }
  80.     else
  81.     {
  82.         start = q;
  83.     }
  84. }
  85.  
  86. int search_el(int n) //търсене на елемент и броене на броя срещания и стойността му.
  87. {
  88.     elem *p = start;
  89.     if (start)
  90.     {
  91.         while (true)
  92.         {
  93.             if (p->key == n)
  94.             {
  95.                 counter++;
  96.                 value = n;
  97.             }
  98.  
  99.             if (p->next == NULL)
  100.             {
  101.                 break;
  102.             }
  103.  
  104.             p = p->next;
  105.         }
  106.     }
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment