| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Связный список не понятный момент |
| Автор: lamber 4.4.2011, 22:43 | ||
Понимаю что по поводу такой базовой структуры написанно не мало, общая идея мне понятно все ясно кроме одного момента, перечетал массу ответов. но въехать не могу, видать тупой. не буду приводить реализацияю списка её и все так видели, приведу пример функции добавления нового элемента. Собственно в ней то и мне не понятно
взято отсюда http://www.codenet.ru/progr/cpp/dlist.php Я как размышляю вот мы добавили первый элемент в список, собственно он на первом этапе и голова и хвост списка с этим все ясно. Добавляем второй элемент, заполняем строки данных зануляем указатель на следующий элемент. В блоке if что у нас получается следующий элемент хвоста присваивается созданный элемент, а в конце мы самому хвосту присваиваем этот же элемент, хрень какая-то выходит. Объясните плз этот момент для дураков плз ))) |
| Автор: volatile 4.4.2011, 23:38 | ||
| lamber, на codenet.ru я не заходил, вроде и так понятно. Сначала немножко перепишу
А так как строка l.tail = c; находится в обоих ветвях ифа, ее можно вынести, что и было сделано. |
| Автор: lamber 4.4.2011, 23:47 | ||||
окей
тут вставляем последний элемент, но
то получает что в первой операции l.tail->next содержало наш объект а после второй, l.tail->next будет содержать NULL т.к. в нашем объекте, c->next ==NULL. Я вот в ту тему въехать не могу, в принципе на словах я могу объяснить что тут происходит, но когда смотрю на код у меня вот так я его вижу. |
| Автор: Ozerich 5.4.2011, 00:03 | ||
А так и надо. l.tail это же последний элемент в списке |
| Автор: volatile 5.4.2011, 00:26 |
я думаю вы опечатались. частица "не" лишняя Добавлено через 1 минуту и 13 секунд а уже исправили, ок |
| Автор: lamber 5.4.2011, 12:09 | ||
С утра словил инсайт и сразу решил не заглядывая никуда на память. сделать свою реализацию ссписка. Все бы ничего но в программе где-то таится ошибка, т.к. в обычном режиме ничего не выводит, только когда бряки устанавливаешь и не печатает последнюю часть данных. Взгляните плз что не так.
|
| Автор: Ozerich 5.4.2011, 12:45 | ||
В функции вывода элементов исправь условие выхода из цикла
|
| Автор: lamber 5.4.2011, 12:49 |
| Агась уже сделал, осталось решить вопрос почему консользакрывается сразу а не ждет ввода символа. |