![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
![]()
Объявлена структура такая
Код:
Сделал функцию которая добавляет элементы списка сначала сам Код:
Код:
проверил командой пока текущий элемент не равен заголовку ( pTemp <> pFirst) выводить на экран элементы в обоих случаях одно и тоже. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
добавляет куда - в начало списка, в конец?
код приведён куском, он не полный. начиная с того, что не видно, что pNew - это указатель на выделенную область памяти (но об этом можно догадаться) и заканчивая тем, что такое pTemp (предполагаю, что это указатель на "хвост" / последний элемент списка. ну и не вижу проверки на пустой список (добавление элемента в пустой список отличается от добавления в не пустой). выложите свой код полностью, будет повод для разговора. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
![]()
Добавляет в конец списка, список сам динамический двунаправленный с заголовком(это важно)
да pTemp указатель на хвост списка, если список пустой он указывает на заголовок pFirst указатель только на заголовок. В списке с заголовком поле next заголовка указывает на след элемент то есть на 1 элемент списка, поле prev на последний элемент списка, если их нету то они указывают на сам заголовок последний элемент списка в поле next указывает на заголовок, получается кольцевой список Последний раз редактировалось goto ∞; 21.06.2017 в 16:32. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
тогда вот это:
полная чушь. а проверить, правильный ли Вы код написали - очень легко. заполните список из нескольких элементов (5 штук вполне достаточно), выведите список на экран (желательно в прямом порядке (от головы к хвосту) и в обратном - от хвосты к голове - двухнаправленный список это элементерно позволяет. Если всё правильно - значит, Вы написали верную программу. если нет - значит, ищите косяки. p.s. а ваш код я так и не увидел. p.p.s. на форуме неоднократно выкладывался рабочий код на Паскале по работе с двухнаправленными списками. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
да, приношу свои извинения.
последний элемент (pTemp^ ) в поле next указывает на головной элемент. поэтому pTemp^.next равен pFirst это одно и то же. ну и раз мы присвоили pNew^.next := pFirst тогда pNew^.next^.prev := pNew; это тоже самое, что pFirst^.prev := pNew |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 21.12.2010
Сообщений: 155
|
![]()
Ок, спасибо всем
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
кольцевой двунаправленный список( Паскаль) | Катя Миронова | Помощь студентам | 9 | 07.06.2013 20:28 |
кольцевой двунаправленный список на паскале | gerda_best92 | Помощь студентам | 4 | 21.06.2011 19:50 |
Кольцевой двунаправленный список. ООП. | Purr | Помощь студентам | 5 | 30.11.2010 08:48 |
Реализовать кольцевой двунаправленный список | s20 | Помощь студентам | 3 | 19.10.2009 16:58 |