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

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

Форум «Всё о Паскале» _ Теоретические вопросы _ Списки

Автор: Гость_Alex 19.04.2004 12:00

Кто-нибудь знает как сформировать список.
Везде есть добавление в начало списка, а мне надо в конец.
Напишите код если можно.

Автор: Atos 19.04.2004 13:17

Я делал список как раз с добавлением в конец... Но у меня был список объектов класса "Матрица", причём сам реализованный в виде класса. Впрочем, наверное, можно и переделать. Если надо файл, напиши.

Автор: Altair 19.04.2004 18:07

Ну вы даете! ... angry.gif
Какого .... я выложил сюда модуль для списков?:
http://forum.pascal.net.ru/index.php?showtopic=1852
----
P.S.
Procedure BListAddLast(var L: TList; E: TElem);
добавление в хвост!

Автор: Гость_Alex 21.04.2004 15:39

Спасибо за ответ.
Это действительно хороший модуль.
Но проблема в том что у меня список с головным элементом, и никак не получается обойтись без цикла, но ведь можно, так даже у Вирта написано.
Так вопрос в том: как добавить элемент в хвост без цикла использую дополнительный элемент вроде last или же что тоже самое с помощью головного элемента?
Спасибо за ответ.

Автор: Guest 21.04.2004 15:58

И вообще в этом модуле какой-то странный головной элемент. Вообще то он выглядит так:
Type
Head = ^P_head;
P_head = record
First : P_el;
Last : P_el;
Name : string;
Count : byte;
end;

Автор: Altair 21.04.2004 19:09

В этом модуле есть процедуры для работы с головным элементом и без него.

Цитата
Но проблема в том что у меня список с головным элементом, и никак не получается обойтись без цикла

А там без цикла, там рекурсия!
Цитата
, но ведь можно, так даже у Вирта написано

В какой книге Вирта это написанно?

Автор: Guest 22.04.2004 1:25

"Алгоритмы и структуры данных"
а конструкцию while я называю циклом, хотя в принципе здесь это и рекурсия так вот мне надо бы чтобы без неё, у меня вообще то однонаправленный циклический с головным. Я всё нужные мне операции сделал уже вот только осталось что нибудь придумать с этим головным, не просто так ведь он указан.

Автор: Altair 22.04.2004 10:01

Цитата
И вообще в этом модуле какой-то странный головной элемент. Вообще то он выглядит так:
Type
Head = ^P_head;
P_head = record
First : P_el;
Last : P_el;
Name : string;
Count : byte;
end;

Вы написали тип ДВУСВЯЗНОГО списка, а модуль для ОДНОСВЯЗНЫХ!
Цитата
В какой книге Вирта это написанно?

Я спрашивал, потому что ищу "Алгоритмы+структуры данных=программы"

Автор: Гость_Alex 22.04.2004 15:44

Так кто-нибудь может написать или нет??

Автор: Altair 22.04.2004 22:59

попробую

Автор: Гость_Alex 28.04.2004 14:53

Что то долго пробуешь? но теперь можешь не стараться, я сам сделал то о чём писал, даже в двух вариантах

Автор: APAL 28.04.2004 15:18

Цитата(Гость_Alex @ 28.04.04 11:53)
Что то долго пробуешь? но теперь можешь не стараться, я сам сделал то о чём писал, даже в двух вариантах

Тогда закрываю тему.