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

Линейные двусвязные списки - C++

Восстановить пароль Регистрация
 
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
25.10.2013, 18:32     Линейные двусвязные списки #1
Проверьте пожалуйста.
1.Дан список. Найти указатель на его последний элемент.
C++
1
2
3
4
5
6
7
template<typename T>
node<T> * FindLastElem(node<T> *head) {
    node<T>* p=head;
    while(p->next!=0)
        p=p->next;
    return p;
}
2.Дан непустой список. Добавить в конец списка заданное значение типа T (параметр шаблона функции)
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename T>
node<T> * AddLastElem(node<T> *head,T E) {
    node<T>* p=FindLastElem(head);
    node <T>* p1=new node <T>;
    p1->next=0;
    p1->data=E;
    p1->prev=p;
    p->next=p1;
    head=p;
    return p;
}
Вторая задача не то выводит..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2013, 18:32     Линейные двусвязные списки
Посмотрите здесь:

ДВУСВЯЗНЫЕ СПИСКИ C++
C++ ДВУСВЯЗНЫЕ СПИСКИ!!!
двусвязные списки C++
Двусвязные списки C++
Шаблонные двусвязные списки. C++
Очереди и Двусвязные списки! C++
Двусвязные списки в с++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
25.10.2013, 18:59     Линейные двусвязные списки #2
На вскидку, ошибок не видно. Только некорректно сформулирована проблема. Вторая задача ничего не выводит, поэтому не ясно, что должно быть выведено, и что вместо этого выводится у вас.

Добавлено через 2 минуты
Вторая функция возвращает элемент, который был последним до добавления нового. Возможно, именно это вас и не устраивает.
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
25.10.2013, 19:01  [ТС]     Линейные двусвязные списки #3
Цитата Сообщение от mytilus Посмотреть сообщение
На вскидку, ошибок не видно. Только некорректно сформулирована проблема. Вторая задача ничего не выводит, поэтому не ясно, что должно быть выведено, и что вместо этого выводится у вас.
Все нашел ошибку во втором:
C++
1
2
3
4
5
6
7
8
9
10
template<typename T>
node<T> * AddLastElem(node<T> *head,T E) {
    node<T>* p=FindLastElem(head);
    node <T>* p1=new node <T>;
    p1->next=0;
    p1->data=E;
    p1->prev=p;
    p->next=p1;
    return head;
}
Yandex
Объявления
25.10.2013, 19:01     Линейные двусвязные списки
Ответ Создать тему
Опции темы

Текущее время: 05:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru