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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
#1

Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? - C++

18.04.2011, 01:05. Просмотров 1113. Ответов 11
Метки нет (Все метки)

Друзья! В общем, надо реализовать связный список и понятно, последний элемент должен содержать адрес NULL, вот ломаю голову как это сделать; с указателями я бы справился а вот со ссылками не могу, помогите пожалуйста! Спасибо.

C++
1
2
3
4
5
6
7
8
9
10
struct pp {
 int ch;
 pp& next;
};
 
int main () {
 pp* p= new pp;
 p->next= NULL;//Вот эта строка!!!!!!!
 getchar ();  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 01:05     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка?
Посмотрите здесь:

Как удалить узел в связном списке? - C++
привет всем! подскажите пожалуйста в подробностях как происходит удаление узла в алгоритме связного списка ?? #include "stdafx.h" ...

Как в связном списке обратиться к элементу по адресу - C++
как в связном списке обратиттся к элементу по нужному адресу? Добавлено через 46 минут как в связном списке обратится к нужному...

Очередь на связном списке - C++
OldTail->next->tail; ругается на эту строчку, пишет class QueueNode не содержит члена tail и просмотрите, пожалуйста, остальной код....

непонятка в связном списке - C++
есть 2 конструктора - list(const str&) и list() если в main использую 1ый конструктор, то всё работает, если 2ой - ошибка, всякие там...

Пузырёк на связном списке - C++
Здравствуйте! Не могли Вы подсказать, почему после первого прохождения по списку все остается как было. Т.е. элементы переставляются, но...

Удаление головы в Связном списке C++ - C++
Ребят, в чем ошибка? Вроде все проверил, но почему-то вылетает с ошибкой при попытке удалении головы списка, не могу понять в чем проблема....

Исправить ошибки в связном списке - C++
Почти готовая лабораторка, но не хватает несколько деталей. Помогите решить проблему, пожалуйста! Задание : 1. Создание списка из...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
18.04.2011, 01:20     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #2
C++
1
2
3
4
5
6
7
8
9
10
struct pp {
 int ch;
 pp& next;
};
int main () {
 pp* p= new pp;
 pp * temp = 0;
 p->next= *temp;
 getchar (); 
}
Но на самом деле некорректно говорить, что ссылка будет равняться NULL, просто будет указывать в недоступную область памяти. Поэтому, если захотите проверить на некорректное значение поля next, фокус с next == NULL не пройдет, будет выброшено исключение и придется его ловить соответствующим try catch блоком.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
18.04.2011, 01:28  [ТС]     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #3
А чё, этот код рабочий? (Даже если закомментить getchar ()
............

C++
1
p->next= *temp;
Не компилится
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
18.04.2011, 01:36     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #4
kravam, на сколько я знаю, ссылка на что-то должна указывать, нельзя создать ссылку ни на что. Используйте указатели.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
18.04.2011, 01:41  [ТС]     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #5
Может ещё кто скажет? Просто это задание из книги
"Используя конструкцию struct, создайте односвязный список, содержащий целое число и ссылку на следующий элемент списка "
...А вдруг авторы исхитрились и использовали-таки ссылку?
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
18.04.2011, 01:42     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #6
kravam, не компилируется потому, что оператор присваивания(да и конструктор бы по-хорошему) нужно написать, инициализирующий ссылку.

Добавлено через 31 секунду
скорее всего, имелся ввиду именно указатель.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
18.04.2011, 01:51  [ТС]     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #7
Цитата Сообщение от Ma3a Посмотреть сообщение
kravam, не компилируется потому, что оператор присваивания(да и конструктор бы по-хорошему) нужно написать, инициализирующий ссылку.
В этом-то вся и фишка!

...Мы пишем конструктор, инициализирующий ссыль, а она ссылается на переменную такого же типа (struct pp), причём эта переменная должна РЕАЛЬНО существовать, то есть она должна уже быть определена, а в ней есть тоже ссыль, которая ссылается на...

В общем, это бесконечная рекурсия. Но я не буду настаивать на помощи раз уж такое дело, хотя авторы книги производят впечатление программистки грамотных людей, то есть что пишущих, то и имеющих ввиду. Но общем подожду ещё не буду в ответы пока заглядывать.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
18.04.2011, 01:52     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #8
К слову, что за книга?
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
18.04.2011, 02:05  [ТС]     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #9
Книга ОЧЕНЬ ПУТЁВАЯ, идёт с диском
"Максим Кузнецов Игорь Симдянов, C++ мастер-класс в задачах и примерах"
А вот их сайт
http://www.softtime.ru/cpp/
А вот такие задания в книге, неплохо, да?
http://www.bhv.ru/books/full_contents.php?id=179009
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.04.2011, 03:26     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #10
Скорее всего авторы употребили слово "ссылка" в общем смысле, а не как конструкцию языка. Потому как ссылку в с++ нетолько нужно инициализировать при объявлении, но и впоследствии нельзя изменять.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.04.2011, 07:04     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #11
next не должен быть ссылкой, так как ссылки должны жёстко привязыватсья к объектам при первом же присваивание чего либо кроме NULL. Делай указателем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2011, 22:27     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка?
Еще ссылки по теме:

Алгоритм Дейкстры в связном списке + файлы. - C++
Задача такова : Имеются n городов. Некоторые из них соединены дорогами известной длины. Найти кратчайшие маршруты из заданного города в...

Copy-Constructor В Шаблонном Связном списке - C++
Скажіте пожалуйста где тут ошыбка? Добавлено через 49 секунд Ран тайм ерор кидает в копи конструкторе 100% вот код ...

Передать значение из одной функции в другую функцию в связном списке - C++
Как можно передать значение из одной функции в другую функцию в связном списке? Например у меня есть функция поиска максимального...

Как работает нулевой указатель null - C++
int x = NULL; указывает на то, что память на переменную x выделилась, но она ни на что не указывает(не имеет значения)?

Как правильно присвоить значение NULL - C++
Есть класс:struct TPointR3 { float r0; float r1; float r2; }; struct TPointR2 { float r0;


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,424
18.04.2011, 22:27  [ТС]     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка? #12
Да, ребята, в структурах авторы использовали именно указатели, а не ссылки.
Yandex
Объявления
18.04.2011, 22:27     Как в связном списке присвоить NULL полю next, если тип этого поля не указатель, а ссылка?
Ответ Создать тему
Опции темы

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