![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
lamber |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
Понимаю что по поводу такой базовой структуры написанно не мало, общая идея мне понятно все ясно кроме одного момента, перечетал массу ответов. но въехать не могу, видать тупой. не буду приводить реализацияю списка её и все так видели, приведу пример функции добавления нового элемента. Собственно в ней то и мне не понятно
взято отсюда http://www.codenet.ru/progr/cpp/dlist.php Я как размышляю вот мы добавили первый элемент в список, собственно он на первом этапе и голова и хвост списка с этим все ясно. Добавляем второй элемент, заполняем строки данных зануляем указатель на следующий элемент. В блоке if что у нас получается следующий элемент хвоста присваивается созданный элемент, а в конце мы самому хвосту присваиваем этот же элемент, хрень какая-то выходит. Объясните плз этот момент для дураков плз ))) |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
lamber, на codenet.ru я не заходил, вроде и так понятно.
Сначала немножко перепишу
А так как строка l.tail = c; находится в обоих ветвях ифа, ее можно вынести, что и было сделано. |
|||
|
||||
lamber |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
окей
тут вставляем последний элемент, но
то получает что в первой операции l.tail->next содержало наш объект а после второй, l.tail->next будет содержать NULL т.к. в нашем объекте, c->next ==NULL. Я вот в ту тему въехать не могу, в принципе на словах я могу объяснить что тут происходит, но когда смотрю на код у меня вот так я его вижу. |
||||
|
|||||
Ozerich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 2.8.2009 Где: Минск, Беларусь Репутация: нет Всего: 5 |
А так и надо. l.tail это же последний элемент в списке Это сообщение отредактировал(а) Ozerich - 5.4.2011, 00:21 --------------------
C++(STL) / DHTML(CSS) / Javascript / PHP Developer |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Да правильно. l.tail->next всегда должен содержать NULL. l.tail - указатель на хвост l.tail->next - следующий за хвостом элемент. (за хвостом элементов нет.) Добавлено через 2 минуты и 32 секунды а в первой операции он указывал на прошлый последний элемень, который теперь стал предпоследним. ![]() |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
lamber |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
С утра словил инсайт и сразу решил не заглядывая никуда на память. сделать свою реализацию ссписка. Все бы ничего но в программе где-то таится ошибка, т.к. в обычном режиме ничего не выводит, только когда бряки устанавливаешь и не печатает последнюю часть данных. Взгляните плз что не так.
|
|||
|
||||
Ozerich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 2.8.2009 Где: Минск, Беларусь Репутация: нет Всего: 5 |
В функции вывода элементов исправь условие выхода из цикла
--------------------
C++(STL) / DHTML(CSS) / Javascript / PHP Developer |
|||
|
||||
lamber |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
Агась уже сделал, осталось решить вопрос почему консользакрывается сразу а не ждет ввода символа.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |