Advertisement
dllbridge

Priority Queue

Feb 25th, 2025
2,896
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.81 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5. #include  <iostream>
  6. #include     <queue>
  7. #include    <string>
  8. #include   <sstream>
  9. #include  <locale.h>    
  10. using namespace std;
  11.  
  12. ///////////////////////////////////////////////////////////////////////////
  13. int main()
  14. {
  15.    
  16.     setlocale(LC_ALL, "rus");
  17.                                                                        //         Приоритетная очередь (по умолчанию
  18.     priority_queue<int> pq;                                            //               максимальный элемент наверху)
  19.  
  20.     int n;                                                             //                      Ввод количества чисел
  21.     cout << "Введите количество операций: ";  cin >> n;
  22.  
  23.     cin.ignore();                                                      //  Игнорируем оставшийся символ новой строки
  24.  
  25.     for (int i = 0; i < n; ++i)                                        //                           Обработка команд
  26.     {
  27.         string command;
  28.         cout << "Введите команду (Insert <число>): ";
  29.         getline(cin, command);
  30.  
  31.         stringstream ss(command);                                      //                             Разбор команды
  32.         string action;
  33.         int value;
  34.  
  35.         ss >> action;
  36.         if(action == "ExtractMax")
  37.         {
  38.             cout << pq.top() << " " << endl;                           //                   Печатаем верхний элемент
  39.             pq.pop();                                                  //                    Удаляем верхний элемент                  
  40.         }      
  41.         else
  42.         {
  43.             if(action == "Insert")
  44.             {
  45.               ss >> value;
  46.               pq.push(value);                                          //                  Добавляем число в очередь
  47.               cout << "Добавлено: " << value << endl;
  48.             } else  {
  49.               cout << "Неизвестная команда: " << action << endl;
  50.             }
  51.         }
  52.     }
  53.                                                                        //                  Вывод содержимого очереди
  54.     cout << "Содержимое приоритетной очереди (от большего к меньшему):" << endl;
  55.    
  56.     while (!pq.empty())
  57.     {
  58.         cout << pq.top() << " ";                                       //                   Печатаем верхний элемент
  59.         pq.pop();                                                      //                    Удаляем верхний элемент
  60.     }
  61.     cout << endl;
  62.  
  63. return 0;
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement