Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Blood Red Rose
1 / 1 / 1
Регистрация: 02.04.2016
Сообщений: 104
#1

Двусвязный список. Постоянно указывается на NULL

15.06.2018, 07:40. Просмотров 82. Ответов 2

Есть вот такой код, по идее функция add должна при условии того, что head и tail указывают на NULL создавать новый узел, в котором как видно head и tail начинают указывать на mid
но по итогу head1 и tail1 так и остаются указывающими на NULL
может проблема в том что mid тоже указывает на NULL?
Как решить проблему создания первого узла?
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
27
void nodeInit(int data, node *head, node *tail) {//создание первого узла
    node *mid = new node;
    mid->number = data;
    mid->prev = NULL;
    mid->next = NULL;
    head = mid;
    tail = mid;
}
void add(int data, node *head, node *tail) {//добавление в конец
    if (head == NULL && tail == NULL) {
        nodeInit(data, head, tail);
        return;
    }
    node *mid = new node;
    mid->next = NULL;
    mid->prev = tail;
    mid->number = data;
    tail->next = mid;
    tail = mid;
}
int main(int argc, char* argv[])
{
    node *head1 = NULL, *tail1 = NULL; // первый список
    node *head2 = NULL, *tail2 = NULL;
        add(14, head1, tail1);
    cout << head1->number;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2018, 07:40
Ответы с готовыми решениями:

Переделать двусвязный список в двусвязный кольцевой
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это...

Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список
спасайте Сформировать список из 10 работников, используя динамическую...

Двусвязный список (в конец двусвязного списка добавить другой список)
здравствуйте, подскажите пожалуйста, как в конец двусвязного списка добавить...

Составить двусвязный список на основе класса, объекты которого будут формировать этот список
Составить двусвязный список на основе класса, объекты которого будут...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на...

2
trifecta
5 / 5 / 5
Регистрация: 18.09.2017
Сообщений: 49
15.06.2018, 08:47 #2
Передавай указатели по ссылке, тогда их присваивания в функциях будут видны извне функций.

C++
1
2
void nodeInit(int data, node *& head, node *& tail)
void add(int data, node *& head, node *& tail)
1
Blood Red Rose
1 / 1 / 1
Регистрация: 02.04.2016
Сообщений: 104
15.06.2018, 08:52  [ТС] #3
Цитата Сообщение от trifecta Посмотреть сообщение
Передавай указатели по ссылке, тогда их присваивания в функциях будут видны извне функций.
C++
1
2
void nodeInit(int data, node *& head, node *& tail)
void add(int data, node *& head, node *& tail)
Блин я так и думал, но залез в какие то дебри уже, спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2018, 08:52

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов
Задание: создайте двусвязный список групп факультета. Каждая группа...

Функция IMG_LoadTexture постоянно возвращает NULL
У меня произошла проблема. Функция IMG_LoadTexture возвращает NULL в этой...

Преобразовать односвязный список в двусвязный список
Доброго времени суток! Помогите, пожалуйста, преобразовать программу из...


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

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

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