![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите примером [D7, WinXP]
tytus © (2005-11-23 15:22:00)Как в паскале создать в памяти однонаправленный список?
Плохиш (2005-11-23 16:32:00) [1]Берёшь двунаправленный список, убираешь ссылку на предыдущий элемент и получаешь однонаправленный список.
PS. Ответ на [0] описан в любой книжке по паскалю.
Reindeer Moss Eater (2005-11-23 15:34:00) [2][2] и [3] эмулируют однонаправленный список.
На самом деле в памяти с произвольным доступом Random Access Memory не может быть никакого однонаправленного списка.
Впрочем преподы - они в другом, в особом мире живут.
tytus (2005-11-23 15:30:00) [3][1] Сам пишу на делфи, начинал на паскале. Вот подкинули такую задачку - однонаправленный список. Как делать - не помню и все. А ведь препод не будет умничать - посмотрит прогу - и запорит если что не так...
Reindeer Moss Eater (2005-11-23 15:26:00) [4]type
tmylist = class
private
fList : TList;
public
function Next : Pointer;
end;
TUser (2005-11-23 15:26:00) [5]PwaGraph = ^TwaGraph;
TwaGraph =
record
VCount: integer;
LCount: integer;
TopVertex: TwaVertex; // a head
Next: PwaGraph;
end;
function NewGraph: PwaGraph;
begin
New (result);
with result^ do begin
VCount:=0;
LCount:=0;
InitVertex(TopVertex);
TopVertex.LCount:=MaxInt;
TopVertex.Index:=MaxInt;
Next:=nil;
end;
end;
Ну и добавить элемент потом можно
var temp: Pwagraph;
begin
temp:=NewGraph;
temp^.Next:=AHeadOfList;
AHeadOfList:=temp;
end;
Reindeer Moss Eater (2005-11-23 15:23:00) [6]В памяти он всегда будет двунаправленным и более.