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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
pasha92
1 / 1 / 0
Регистрация: 16.11.2009
Сообщений: 14
#1

кольцевой список. STL - C++

18.05.2011, 15:57. Просмотров 1296. Ответов 1
Метки нет (Все метки)

В общем, есть такая проблема. Нужно реализовать кольцевой список, удовлетворяющий требованиям STL. То есть, он должен работать со всеми алгоритмами. Вопрос в том, как реализовать метод end(), который должен возвращать элемент, следующий за последним. И при этом, для итератора, указывающего на последний элемент, it++ должен возвращать итератор на первый элемент.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос кольцевой список. STL (C++):

Кольцевой список STL - C++
Добрый день, такой вопрос: можно ли работать с STL-списком как с кольцевым? Если да, то как? Нигде не нашел в литературе.

Реализовать кольцевой список. Как закольцевать список обычный? - C++
Помогите пожалуйста реализовать кольцевой список. Я так понимаю, он может быть двусвязным и односвязным? Меня интересует односвязный....

Кольцевой список - C++
Что нужно поменять,чтобы новые елементы добавлялись не в конец списка, а в начало? void List::Insert_end_list_2(int &x) { ...

Кольцевой список - C++
Пытаюсь написать программу,но столкнулся с проблемой.Написал ф-ю создания списка из n элементов,объявил её тип сначала как void ,выдал...

кольцевой список - C++
Граждане - товарищи, нужна помощь! Задание- Описать процедуру, которая формирует очередь Queue, включив в нее по одному разу элементы,...

Кольцевой двусвязный список - C++
Что здесь нужно поменять, чтобы был кольцевой двусвязный список? #include <iostream> #include <windows.h> using namespace std; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
18.05.2011, 18:28 #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
#include <iostream>
 
struct ListNodeBase {
  ListNodeBase *next;
  ListNodeBase *prev;
};
 
template <class ValueType>
struct ListNode : public ListNodeBase {
  ValueType data;
};
 
template <class T>
class DList {
 public:
  DList() {
    node_.next = &node_;
    node_.prev = &node_;
  }
  Iterator begin() { return node_.next; }
  Iterator end() { return &node_; }
 private:
  ListNodeBase node_;
};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 18:28
Привет! Вот еще темы с ответами:

Двусвязный кольцевой список - C++
подскажите пожалуйста как будит выглядеть Двусвязный кольцевой список? #include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include...

Кольцевой односвязный список - C++
Собственно что это и с чем его едят! Как реализовать, если это что-то страшное! Задача : сделать класс реализующий односвязный...

Двухсвязный Кольцевой Список - C++
Дано вот такое задание:В двухсвязном кольцевом списке определить минимальный и максимальный элементы,а затем заменить их значения на сумму...

Кольцевой двусвязный список - C++
Приведите пожалуйста пример как его создать, добавить в него элемент и удалить элемент из такого списка.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru