home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
PASCAL
/
LINKS.ZIP
/
TLIST.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1989-05-31
|
2KB
|
85 lines
program tlist;
uses Links;
type
NameType = string[10];
person = object(link)
name :NameType;
constructor init(nameArg :NameType);
end;
Pperson = ^person;
constructor person.init(nameArg :NameType);
begin
name := nameArg;
link.init;
end;
var
queue : Phead;
man : Pperson;
man2 : Pperson;
n : integer;
tf : boolean;
begin
new(queue,Init);
tf := queue^.Empty;
new(man,Init('Bill'));
man^.Into(queue);
new(man,Init('Tom'));
man^.Into(queue);
new(man,Init('Jerry'));
man^.Into(queue);
man := queue^.First;
writeln('First man in queue is ',man^.name);
man := queue^.Last;
writeln('Last man in queue is ',man^.name);
n := queue^.Cardinal;
writeln('Length of queue is ',n);
if not queue^.Empty then writeln('EMPTY reports queue NOT empty');
new(man2,Init('Hugo'));
man2^.Precede(man);
new(man2,Init('Alfonso'));
man2^.Follow(man);
{ should now be: Bill Tom Hugo Jerry Alfonso }
writeln('After PRECEDE and FOLLOW calls, list should be:');
writeln(' {Bill, Tom, Hugo, Jerry, Alfonso}');
writeln('Actual list is:');
man := queue^.First;
while man <> NIL do
begin
write(man^.name,' ');
man := man^.Suc;
end;
writeln;
man := queue^.Last;
writeln('The same list backwards is:');
while man <> NIL do
begin
write(man^.name,' ');
man := man^.Pred;
end;
writeln;
n := queue^.Cardinal;
writeln('Queue size should be 5 now, is: ', n);
queue^.Clear;
writeln('After clear operation,');
n := queue^.Cardinal;
writeln(' Queue size is ',n);
tf := queue^.Empty;
if tf then writeln(' and EMTPY reports queue is empty.');
writeln;
writeln('Done with test.');
end.