Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
lemegeton
2934 / 1363 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
17.03.2013, 13:01 0

Нужен совет - как сделать circular linked list?

17.03.2013, 13:01. Просмотров 597. Ответов 2
Метки (Все метки)

Ответ

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
template <class T>
class Queue {
 public:
  Queue() : base(), queueSize(0) {}
  virtual ~Queue() {
    while (!empty()) {
      pop();
    }
  }
  void pop() {
    NodeBase *next = base.next->next;
    delete base.next;
    base.next = next;
    --queueSize;
  }
  void push(const T &value) {
    ++queueSize;
    base.next = new Node(&base, value);
  }
  bool empty() const {
    return base.next == &base;
  }
  const T &front() const {
    return (static_cast<Node*>(base.next))->value;
  }
  size_t size() const {
    return queueSize;
  }
 private:
  // запрет копирования
  Queue(const Queue &other);             // конструктором
  Queue &operator=(const Queue &other);  // оператором "="
  struct NodeBase {
    NodeBase() : next(this) {}
    NodeBase(NodeBase *prev) : next(prev->next) {
      prev->next = this;
    }
    NodeBase *next;
  };
  struct Node : public NodeBase {
    T value;
    Node(NodeBase *prev, const T &value) : NodeBase(prev), value(value) {}
  };
  NodeBase base;
  size_t queueSize;
};


Вернуться к обсуждению:
Нужен совет - как сделать circular linked list?
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 13:01
Готовые ответы и решения:

Linked List na C
kak perevernut na C LinkedList esli mo0jno kod pojaluista.

Linked List класс
Ребят! Помогите пожалуйста найти ошибку! Я все написал, но чтобы я не делал...

Linked List описание
/*!Begin Snippet:filebegin*/ #ifndef _LINKEDLIST_H_ #define _LINKEDLIST_H_ ...

C-style Linked List
Итак, изучал я, значит, C-style Linked List (не знаю, как будет по-русски) и...

Template double linked list C++
Пытался реализовать шаблон класса двусвязный список, элементарами которого...

2
Другие темы раздела
C++ Считывание с бинарного файла http://www.cyberforum.ru/cpp-beginners/thread809881.html
Программа должна уметь считать данные с текстового файла и бинарного файла, записывать в бинарный файл. Но при считывании из бинарного выводит строковую переменную (body) если printf то "7700116"...
C++ Связный список (создать и реализовать операции над ним) Помогите, пожалуйста, доделать задание. Мне нужно создать связный список и реализовать операции над ним. 1. Создание списка из файла. 2.Insert <елемент> n Вставка елемента в позицию n. 3. DELETE... http://www.cyberforum.ru/cpp-beginners/thread809879.html
C++ Порядок вызова конструкторов
на срр-reference нашёл тему про виртуальный деструктор, но я так и не понял (да там и не объясняется), почему именно конструктор класса Object вызывается вторым по счёту после вызова конструктора...
Как запустить dll скомпиленную в Visual Studio 2012 в Windows XP C++
При подключении этой dll появляется ошибка Unable to load DLL error=0 -or-, error=127 Нужны какие то системные dll от Visual Studio, раньше когда я работал только на Visual Studio 2008 было точно...
C++ default компилятор под Windows 7 http://www.cyberforum.ru/cpp-beginners/thread809864.html
Хочу скомпилировать себе mono develop погонять, но сам проект с джитхаба не запускается говорит мол версия 2010 слишком стара, какие есть еще способы скомпилировать проект (подскажите как называется...
C++ запись в файл Помогите пожалуйста мне нужно считать данные из одного файла и потом с некоторыми изменениями записать их в другой файл. Вот мой код но он не записывает нужную информацию и вывод разные буквы... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru