Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2010, 22:35   #1
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Двунаправленный список

Всем доброго время суток, дана программа двунаправленного списка, которая может размещать элементы как сначала списка, но так же и с его конца, результат должен быть таким:
Размер прямого списка = 10
Содержимое прямого списка: ABCDEFGHIJ

Размер обратного списка = 10
Содержимое обратного списка: JIHGFEDCBA

#include <iostream>
#include <list>
using namespace std;
int main()
{
list<char> lst;
list<char> revlst;
int i;
for (i = 0; i < 10; i++) lst.push_back ('A' + i);
cout << "The size of direct list = " << lst.size() << endl;
cout << "the content of direct list: ";
list<char>::iterator p;
while(!lst.empty()) {
p = lst.begin();
cout << *p;
lst.pop_front();
revlst.push_front(*p);
}
cout << endl;
cout << "the size of reverse list = ";
cout << revlst.size() << endl;
cout << "The content of reverse list: ";
p = revlst.begin();
while (p != revlst.end()) {
cout << *p;
p++;
}
return 0;
}
Компиляция проходит без ошибок, но при выполнение программа выдает ошибку и закрывается не могу понять где ошибка. Заранее огромное спасибо.
jennya вне форума Ответить с цитированием
Старый 04.10.2010, 23:35   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
#include <iostream>
#include <iterator>
#include <list>
#include <algorithm>

int main( ){
    std::list< int > tmp;
    for( int i = 1; i < 10; ++i )
        tmp.push_back( i );
    std::copy( tmp.begin( ), tmp.end( ), std::ostream_iterator< int >( std::cout, " " ) );
    std::cout << '\n';
    {   /* std::reverse всё же однозначно лучше ;) */
	std::list< int >::iterator first = tmp.begin();
	std::list< int >::iterator last  = ( --tmp.end() );
	for( int i = 0; i < tmp.size() / 2; ++i, ++first, --last )
	    std::swap( *first, *last );
    }
    std::copy( tmp.begin( ), tmp.end( ), std::ostream_iterator< int >( std::cout, " " ) );
    std::cout << '\n';
}
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux

Последний раз редактировалось ozo; 04.10.2010 в 23:40.
ozo вне форума Ответить с цитированием
Старый 04.10.2010, 23:43   #3
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Двунаправленный список

Пока не совсем понятно?
jennya вне форума Ответить с цитированием
Старый 05.10.2010, 00:04   #4
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

мне понятно
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 05.10.2010, 00:46   #5
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Двунаправленный список

ЧЕ ПОЛНОСТЬЮ ВСЯ ПРОГРАММА НЕ ПРАВИЛЬНА?
jennya вне форума Ответить с цитированием
Старый 05.10.2010, 00:55   #6
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Двунаправленный список

СПАСИБО ПОНЯЛ
jennya вне форума Ответить с цитированием
Старый 05.10.2010, 01:23   #7
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

программа может и правильна, я просто привел пример как зеркально отразить список )
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двунаправленный список grave123 Общие вопросы C/C++ 1 08.03.2010 10:44
Двунаправленный список dip Помощь студентам 3 02.03.2010 12:16
Двунаправленный список xOptimuSx Общие вопросы C/C++ 1 23.01.2010 17:41
Двунаправленный список на С++ JeyKip Помощь студентам 0 11.01.2010 23:04
Двунаправленный список Chudo4258 Помощь студентам 6 09.05.2009 07:16