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

Итератор двусвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Бинарное дерево, стандартная библиотека шаблонов (STL) http://www.cyberforum.ru/cpp-beginners/thread1009638.html
Моя задача заключается в следующем: Построить шаблон класса "бинарное дерево" со следующими возможностями: 1) возможность добавления и удаления определенного элемента (по значению ключа) 2) поиск (по ключу) Нужно использовать стандартный контейнерный класс. И как раз тут мне нужна помощь ( с контейнерными классами впервые столкнулся) - скажите пожалуйста какие стандартные контейнерные...
C++ Исправление Написал данную программу #include <iostream> using namespace std; int main() { int x,center; cout<<"Enter number x"; cin>>x; http://www.cyberforum.ru/cpp-beginners/thread1009628.html
GLUT для cygwin и netbeans C++
Не могу установить библиотеку glut. Компилятор у меня cygwin, а среда netbeans. По пути "c:\cygwin\usr\include\w32api\GL" лежит glut.h По "C:\cygwin\lib" лежит libglut32win.a Что еще должно лежать и где? Меня еще запутал инет! В чем разница между freeglut и просто glut? Еще, что нужно в linker писать? Куда .lib кидать?
C++ Не открывается файл с текстом
Не открывается файл с текстом Делаю так : -----в Обозреватель решений в - папке Solution Items выбираю --- Добавить --- Создать элемент --- текстовый файл ------ в Обозревателе решений файл появляется ------- Потом в исходном файле
C++ GLUT для cygwin и netbeans http://www.cyberforum.ru/cpp-beginners/thread1009623.html
Не могу установить библиотеку glut. Компилятор у меня cygwin, а среда netbeans. По пути "c:\cygwin\usr\include\w32api\GL" лежит glut.h По "C:\cygwin\lib" лежит libglut32win.a Что еще должно лежать и где? Меня еще запутал инет! В чем разница между freeglut и просто glut? Еще, что нужно в linker писать?
C++ синтаксический анализатор Доброго времени суток. Подскажите как написать синтаксический анализатор кода(паскаль). Как это правильно делать? как это сделано в средах разработки(например, борланде)? Спасибо! подробнее

Показать сообщение отдельно
Guy Kawasaki
 Аватар для Guy Kawasaki
2 / 1 / 0
Регистрация: 07.11.2013
Сообщений: 42
16.11.2013, 21:55  [ТС]     Итератор двусвязного списка
Если убрать проверку if(iter), то функция заработает:

C++
1
2
3
4
5
6
7
8
void output_end(List &myList)
{
    cout << "\n\nВывод двусвязного списка с хвоста:\n";
    Iterator iter = myList.end_iterator();
    Iterator beg = myList.begin_iterator();
    for (; !(iter == beg); --iter)
            cout << *iter << " ";
}
НО есть одно НО:

При введение значений узлов списка: 1 2 3 4 5 6 7 8 9 10 11 12, последний введенный 0 указывает на то, что ввод завершен.

Функция void output_begin(List &myList) выдает нам: 1 2 3 4 5 6 7 8 9 10 11 12,
а функция void output_end(List &myList) нечто вроде этого: 0 12 11 10 9 8 7 6 5 4 3 2 1

Как грамотно пофиксить этот ноль?

Добавлено через 4 минуты
Цитата Сообщение от stima Посмотреть сообщение
Во первых как понять не работает? Во вторых не зная текущее состояние List сложно угадать, из чего сосоят итераторы. В третьих реализуйте список без итераторов, доведите его до идеально рабочего состояния и реализовав все методы, добавте итераторы.
В комментариях кода есть старые методы, которые отлично работают. Задание было переписать программу, используя Iterator и NVI, про NVI я пока забуду, хочу переписать все бывшие методы на новые с итераторами.

А вот и старые методы отвечающие за вывод с головы и хвоста:

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
void List::show_from_the_beginning()
{
    Node *temp = tail;
    temp = head;
 
    cout << "\nВывод элементов двусвязного списка с начала:\n\n";
    while (temp != 0)
    {
        cout << temp -> core << " ";
        temp = temp -> next;
    }
    cout << endl;
}
 
void List::show_from_the_end()
{
    Node *temp = tail;
 
    cout << "\nВывод элементов двусвязного списка с конца:\n\n";
    while (temp != 0)
    {
        cout << temp -> core << " ";
        temp = temp -> previous;
    }
    cout << endl;
}
 
Текущее время: 22:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru