Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Двусвязанные и односвязанные списки


Эдик Дятлов ©   (2002-12-15 19:07:00) 

Привет всем !
Понимаю, что задаваемый вопрос слишком прост и примитивен,но просто ограничен во времени. Если сможете, то не пинайте и помогите ! :)
Нужен любой пример на тему "Циклические двусвязанные и односвязанные списки" или что-то подобное.
С УВАЖЕНИЕМ !!!


Sha   (2002-12-15 23:39:00) [1]

Ну, и я о том же.


Snap   (2002-12-15 23:37:00) [2]

>А чем цикл здесь нам поможет?

нет здесь должен помочь не цикл а 2х связанный список


Sha   (2002-12-15 23:35:00) [3]

>Snap © (15.12.02 23:29)
>а если элеметов много? или если нужна максимальная скорость?

А чем цикл здесь нам поможет?


Snap   (2002-12-15 23:29:00) [4]

>Sha © (15.12.02 21:20)
>Вот я и говорю, что в реальной жизни этого не надо.
>Просто начинаем новый обход с головы списка - вот и все

а если элеметов много? или если нужна максимальная скорость?


Sha   (2002-12-15 23:24:00) [5]

Жаль что нельзя попросить препода нашего студента не умничать по книжке, а привести конкретный пример...

Единственная возможная причина изобретения однонаправленного циклического
списка, которая приходит мне в голову,- это обеспечить возможность шагнуть назад
(против стрелки) в случае, если мы не знаем указателя на голову, а знаем только
текущий элемент, и, вдобавок, не можем ввести двунаправленность. Такое бывает?

По-правде, я немного схитрил, уж больно захотелось обсудить "цикличность".
На самом деле у меня самого иногда возникает желание создать фиктивный элемент
списка и указатели на голову/хвост списка хранить в этом фиктивном элементе.
Чем не циклический список? Как раз от этого хотелось предостеречь начинающих.

На первый взгляд кажется, что будет удобнее работать со списком - ведь один
элемент в нем всегда есть и, значит, реже придется проверять граничные условия.
Пару раз я так и делал. Оказалось неудобно. Приходится все время проверять
и держать в голове, с каким элементом работаем: фиктивным или настоящим.
Если программа написана давно, на понимание ее логики уходит слишком много сил.

Так что я выбор сделал: НЕТ - циклическим спискам, НЕТ - фиктивным элементам !!!
И не надо морочить головы студентов ерундой, им и без этого жить хорошо :)


Sha   (2002-12-15 21:20:00) [6]

Вот я и говорю, что в реальной жизни этого не надо.
Просто начинаем новый обход с головы списка - вот и все.


Suntechnic   (2002-12-15 20:44:00) [7]

>Sha © (15.12.02 20:37)
Ну если ты серьёзно, то можно пофантазировать. Например, имеем некий связанный список объектов. И, предположим, некий алгоритм должен выполнять периодические действия над этим списком, причём над всеми и поочереди. Почему бы не организовать этот связанный список в виде циклического связанного списка? Я не говорю, что это единственное решение, но почему бы и нет? Ты, например, часто в жизни двусвязанные списки использовал? Я нет, но тем не менее они имеются как часть структур данных. Точно так же и циклические списки.


Sha   (2002-12-15 20:37:00) [8]

Я серьезно. Списки (нециклические) и пишу и использую довольно часто. А вот циклические - для меня загадка уже много лет. Ни разу не слышал, чтобы они где-нибудь кому-нибудь хоть раз в жизни понадобились. Есть реальные примеры?


Suntechnic   (2002-12-15 20:32:00) [9]

>Sha © (15.12.02 20:29)
И где это может понадобиться?

Это ты на до мной так издеваешься? :))
А где может таблица умножения понадобится?
Это основы информатики связанные списки, деревья и т.д. и т.п.


Sha   (2002-12-15 20:29:00) [10]

>Suntechnic © (15.12.02 20:25)
И где это может понадобиться?


Suntechnic   (2002-12-15 20:25:00) [11]

>Sha © (15.12.02 19:45)
Это когда последний элемент списка ссылается на первый.

>Anatoly Podgoretsky ©
Тянет максимум на лабораторную, даже для "не компьютерных" специальностей :)


Sha   (2002-12-15 20:24:00) [12]

Давно-давно был у нас лектор, который говорил, что циклические - это здорово. Что можно по циклу ходить многократно. Только, что в них можно делать такого особенного, чем это лучше или удобнее обычных с головой и хвостом или без хвоста, сказать не мог. До сих пор их не использую - и ничего, все пучком.


Sha   (2002-12-15 19:45:00) [13]

Циклические - это как?


Anatoly Podgoretsky   (2002-12-15 19:24:00) [14]

Курсовая, лабораторная, зачет - Да?


DDi   (2002-12-15 19:11:00) [15]

А если поподробнее? Если я правильно тебя понял, то думаю можно согласовывать списки в одной процедуре/функции...


Наверх

Титульная страница Поиск, карта сайта Написать письмо