![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
списки
Ag2002 © (2002-11-29 16:04:00)народ, у кого есть простинький пример работы с двухсвязными динамическими списками, на паскале, чтобы там было добавление элемента, удаление, просмотр всего что введенно !!! очень надо а у самого чтото не совсем работает !!!
pasha_golub (2002-11-29 17:54:00) [1]Нада сохранить в переменной
var Current: PListItem
Если текущее звено Current.Data
Если следующее Current.Next.Data
Предидущее Current.Pred.Data
и т.д. и т.п.
Ag2002 (2002-11-29 17:48:00) [2]а как потом к ним правельно обращатся
Darkwin (2002-11-29 17:21:00) [3]
procedure Add(Last:PListItem)
var
Item:PListItem;
begin
New(Item);
Item^.liData:=что то;
Last^.liNext:=Item;
Item^.Prev:=Last;
end;
где то так, Last соответсвенно последний элемент в списке
Ag2002 (2002-11-29 17:12:00) [4]Andrey007 - я просто прошу пример проги на пакале под ДОС
Andrey007 (2002-11-29 17:06:00) [5]Я, например, работу со связанными списками переложил на Delphi - делаю TListBox.AddObject. В принципе, тоже самое можно делать и с TComboBox"ом. Насчёт остальных компонентов - не знаю.
Ag2002 (2002-11-29 17:03:00) [6]Память я выделяю !!!!
> в liPrev адрес не старого liNext а адрес узла созданного на предыдущем шаге...
покажи на примере
Skier (2002-11-29 16:56:00) [7]>Ag2002
> даю адрес старого liNext
в liPrev адрес не старого liNext а адрес узла созданного на предыдущем шаге...
Skier (2002-11-29 16:52:00) [8]>Ag2002
Извини, конечно, но ты память-то выделяешь
var
AListItem : PListItem;
New(AListItem)
и т.д.
Ag2002 (2002-11-29 16:45:00) [9]ну я делаю так при инициализации liPrev нужно присвоить nil, а liNext оставяю как есть, при добавлении я liPrev даю адрес старого liNext, а номому liNext := nil. Но оно все работает только потом я обращатся к данным не могу они не те что ввёл !!!
Skier (2002-11-29 16:23:00) [10]>Ag2002
Да там особо нужно работать только в первым и последним
элементом у них нет указателя (=nil) на предыдущий и следующий элемент соответственно.
А тип элемента примерно такой
PListItem = ^TListItem;
TListItem = packed record
liPrev : PListItem;
liData : TYourType;
liNext : PListItem;
end; //TListItem
Ag2002 (2002-11-29 16:14:00) [11]да не могу правельно инициализировать,а потом соответственно делать все остальное
Skier (2002-11-29 16:07:00) [12]>Ag2002
> а у самого чтото не совсем работает !!!
Что не работает ?
Где косяк ?