Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 16.11.2009
Сообщений: 14
1

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

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


В общем, есть такая проблема. Нужно реализовать кольцевой список, удовлетворяющий требованиям STL. То есть, он должен работать со всеми алгоритмами. Вопрос в том, как реализовать метод end(), который должен возвращать элемент, следующий за последним. И при этом, для итератора, указывающего на последний элемент, it++ должен возвращать итератор на первый элемент.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2011, 15:57
Ответы с готовыми решениями:

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

STL: реализовать кольцевой упорядоченный двусвязный список
Добрый вечер всем кто открыл эту вкладку! Надо реализовать кольцевой упорядоченный двозвязний...

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

Кольцевой список
Что нужно поменять,чтобы новые елементы добавлялись не в конец списка, а в начало? void...

1
3053 / 1458 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
18.05.2011, 18:28 2
Лучший ответ Сообщение было отмечено pasha92 как решение

Решение

Добавьте "промежуточный" элемент между началом и хвостом, который и будет считаться за списком. Таким, кстати, образом, Вы сможете так же обеспечить декремент итератора, находящегося за концом списка.

Что-то вроде:
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2011, 18:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

Двунаправленный кольцевой список
Ребята, спасайте. Очень много дают информации, всё не успеваю освоить. Потихоньку стараюсь...

Кольцевой односвязный список
Здравствуйте! Работаю с кольцевым односвязным списком на C++ Насколько я понимаю, удаляемый...


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

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

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