Форум программистов, компьютерный форум CyberForum.ru

FIFO Очередь, как с ней разобратся?? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
repa4ek
18 / 18 / 1
Регистрация: 25.12.2011
Сообщений: 159
25.12.2011, 18:59     FIFO Очередь, как с ней разобратся?? #1
Разработать подпрограммы работы с приоритетной очередью. Постановка запросов в очередь выполняется по приоритету, снятие - подряд из младших адресов (началу очереди). Очередь организована на массиве с циклическим заполнением и списке. Приоритет: мах значения числового параметра; при саивпаданни параметров - FIFO.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 18:59     FIFO Очередь, как с ней разобратся??
Посмотрите здесь:

C++ Описать класс, реализующий очередь целых чисел типа FIFO.
как разобратся в этом. C++
Динамическая Очередь (FIFO). C++
Очередь FIFO C++
C++ Создать структуру, реализующую очередь целых чисел типа FIFO
Изменить удаление и добавление элементов в очередь по правилу FIFO. C++
Очередь «первый вошел — первый вышел» (FIFO) C++
Двумерная очередь (FIFO) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
25.12.2011, 21:08     FIFO Очередь, как с ней разобратся?? #2
Цитата Сообщение от repa4ek Посмотреть сообщение
Очередь организована на массиве с циклическим заполнением и списке.
Не понятно, что имеется в виду.
Цитата Сообщение от repa4ek Посмотреть сообщение
Приоритет: мах значения числового параметра; при саивпаданни параметров - 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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
struct NodeBase {
  NodeBase() : prev(this), next(this) {}
  NodeBase(NodeBase *prev_, NodeBase *next_)
    : prev(prev_), next(next_) {
    prev->next = this;
    next->prev = this;
  }
  virtual ~NodeBase() {
    prev->next = next;
    next->prev = prev;
  }
  NodeBase *prev, *next;
};
 
template <class T>
struct Node : public NodeBase {
  Node(NodeBase *prev_, NodeBase *next_, const T &data_)
    : NodeBase(prev_, next_), data(data_) {}
  T data;
};
 
template <class T>
class PriorityQueue {
 public:
  PriorityQueue() : begin_() {}
  ~PriorityQueue() {
    clear();
  }
  T top() {
    return static_cast< Node<T>* >(begin_.next)->data;
  }
  T pop() {
    T tmp = top();
    delete begin_.next;
    return tmp;
  }
  void push(const T &value) {
    Node<T> *before = static_cast<Node<T>*>(begin_.next);
    while (before != &begin_ && !(before->data < value))
      before = static_cast<Node<T>*>(before->next);
    new Node<T>(before->prev, before, value);
  }
  void clear() {
    while (!isEmpty())
      delete begin_.next;
  }
  bool isEmpty() {
    return begin_.next == &begin_;
  }
 private:
  NodeBase begin_;
};
 
class SomeClass {
 public:
  SomeClass(int id, int priority)
    : id_(id), priority_(priority) {}
  int getId() const { return id_; }
  int getPriority() const { return priority_; }
 private:
  int id_, priority_;
};
 
bool operator<(const SomeClass &a, const SomeClass &b) {
  return a.getPriority() < b.getPriority();
}
 
std::ostream &operator<<(std::ostream &stream, const SomeClass &a) {
  return stream << "[" << a.getId() << ":" << a.getPriority() << "]";
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
  PriorityQueue<SomeClass> p;
  for (int i = 0; i < 1000; ++i)
    p.push(SomeClass(i, rand() % 10));
  while (!p.isEmpty())
    std::cout << p.pop() << " ";
}
Yandex
Объявления
25.12.2011, 21:08     FIFO Очередь, как с ней разобратся??
Ответ Создать тему
Опции темы

Текущее время: 05:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru