Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Односвязный список.

Автор: Tan 4.03.2007 4:30

Побегал по поиску, нашёл информацию о динамических структурах данных (изначально я был заинтересован односвязным списком), но насколько меня учили существуют односвязные списки с конечным и без конечного указателя(на данную терминологию я не напоролся). Не могли бы вы объяснить разницу между односвязным линейным списком с конечным указателем и без конечного указателя. И вообще, если кто-то считает что он может на пальцах разъяснить что в принципе из себя представляют вышеупомянутые списки, буду рад. На сколько я понимаю, что односвязный список - это список который в себе содержит 2 поля: дата и next, где next это адрес следующего элемента в динамической памяти. Такая структура ясна, а конечные указатели на что указывают ? (на конец списка ? =)).

Автор: мисс_граффити 4.03.2007 4:35

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

Автор: Tan 4.03.2007 4:38

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

Автор: мисс_граффити 4.03.2007 4:47

циркулярные... как-то обычно говорят "циклические". но, думаю, это одно и то же.
использовать их... ну, например, на форуме рассматривалась задача "считалочка": дети становятся в круг и выбывает каждый второй.
или надо напечатать каждый второй месяц.
или (из лично примененного): текст должен раскрашиваться градиентно (грубо говоря: красный-оранжевый-желтый-зеленый-синий-фиолетовый-лиловый-красный). цвета загоняются в список, и, пока буковки не кончатся, оттуда берутся.
строки - по сути тоже массивы smile.gif так что можно, конечно.

Автор: Tan 4.03.2007 14:58

понятно. А что ещё о них можно в курсовике написать ?

Автор: мисс_граффити 4.03.2007 18:05

поищи книжечку Н.Вирт. Алгоритмы и структуры данных.
Там спискам посвящена целая глава, рассматриваются в том числе основные операции над списками.

Автор: Tan 4.03.2007 18:14

Спасибо тебе и Вирту за паскаль и алгоритмы =)