0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 90
1

С FIFO на LIFO

26.04.2015, 20:09. Показов 1345. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите изменить с FIFO на LIFO
Вот условие этого кода: Приоритетная очередь.
Установление в очередь выполняется по приоритету, снятие - с младших адресов (начало очереди).
Очередь организована в массиве со смещением после каждого чтения и на массиве со смещением после достижения предела памяти, выделенной для очереди.
Приоритет - максимальное значение числового параметра, при совпадении параметра - FIFO

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <iterator>
#include <functional> 
#include <queue>
#include <algorithm>
using namespace std;
class PQ
{
private:    
priority_queue<int> q;
  int size;
public: 
    PQ (int s):size(s){}
   ~PQ(){}
//priority_queue<int> input(priority_queue<int> q)//, istream& is=cin)
//{
//   cout << "Enter number to fill the queue:\n";// (any letter to stop):\n";
//   int v;
//   cin>>v;
//   q.push(v);
//   if(q.size()>size)
//   {int max=max_elem(q);
//       q=erase(q,max);
//          q.push(v);
//   }
//  // q = move(priority_queue<int>(istream_iterator<int>(is), istream_iterator<int>()));
//return q;
//}
 
void print(priority_queue<int> q)
{
   while(!q.empty())
   {
      cout << q.top() << " ";
      q.pop();
   }
   cout << endl;
}
 
int max_elem(priority_queue<int> q)
{
   int max = q.top();
   q.pop();
   while (!q.empty())
   {
      if(max < q.top())
         max = q.top();
      q.pop();
   }
   return max;
}
 
//int average(priority_queue<int> q)
//{
//   size_t size = q.size();
//   int temp = 0;
//   while (!q.empty())
//   {
//      temp += q.top();
//      q.pop();
//   }
//   return temp / size;
//}
priority_queue<int> erase(priority_queue<int> q, int elem)
{
   priority_queue<int> result;
   while (!q.empty())
   {
      if(q.top()==elem)
          q.pop();
      else
      {
         result.push(q.top());
         q.pop();
      }
   }
   return result;
}
void menu ()
{
    cout<<"Priority Queue Menu: "<<endl;
cout<<"1. заполнить очередь с 10 elemens\n"<<endl;
  cout<<"2. добавить элемент\n"<<endl;
  cout<<"3. Показать \n"<<endl;
int t;
  cin>> t;
  switch ( t ) {
    case 1:
         for (int a=0;a<10;a++){
        int x;
        cin>>x;
          q.push(x);}
    break;
  case 2:
//input(q);
       cout << "Введите номер, чтобы заполнить очереди:\n";// (any letter to stop):\n";
   int v;
   cin>>v;
    if(q.size()>14)
   {int max=max_elem(q);
       q=erase(q,max);
       q.push(v);}
   else q.push(v);
    break;
  case 3:
     print(q);
        system("pause");
    break;
  default:
    cout<<"Ошибка, плохой вход\n"<<endl;
    break;}}};
int main()
{
    PQ pq(15);
    do{
pq.menu();
system("cls");
}while("ON");
/*  input(pq);
   print(pq);*/
   //cout << "Min element is: " << min_elem(pq) << endl;
   //int aver = average(pq);
   //cout << "Average is: " << aver << endl;
   //pq = erase(pq, aver, greater<int>());
   //print(pq);
   system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2015, 20:09
Ответы с готовыми решениями:

Список FIFO и LIFO
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; struct struc{ char a; ...

Множество, LIFO, FIFO
Добрый день. Дали список задач для курсача, но не могу понять что требуется в некоторых из них......

Вывод списка, LIFO и FIFO
Программа создает два списка: один с числами, второй эти числа делит на четные и нечетные. Но при...

Реализация стека FIFO и LIFO
Собственно, если у кого-нить будет время посмотреть мои реализации FIFO и LIFO стеков, и высказать...

0
26.04.2015, 20:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2015, 20:09
Помогаю со студенческими работами здесь

Посчитать прибыль от сделок используя FIFO и LIFO
Здравствуйте, Нужно написать небольшую програмку для подсчета прибыли после проведения...

1) сделать сортировку (любой) 2) защита по вводу символа 3) вывод LIFO, FIFO 4) лимит отображаемых симв.)
За основу брать этот пример . Не получается у меня(( #include &lt;iostream&gt; #include &lt;stdio.h&gt; ...

Реализовать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки STL
Создать пользовательские классы - дек, стек (LIFO), очередь (FIFO) на базе класса list библиотеки...

LIFO FIFO
Готовлюсь к спецу, может кто помочь литературой или видео, где подробно разобрана реализация этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru