[Back to POINTERS SWAG index] [Back to Main SWAG index] [Original]
{ The following Program yields output that indicates that I have it set up
correctly but With my scanty understanding of exactly how to handle a linked
list I would be surprised if it is. This is one difficult area in which Swan
is not quite as expansive as he might be.
I will appreciate critique and commentary on this if you are anybody
would be so kind as to give it:
}
Program InsertLink;
Uses Crt;
Type
Str15 = String[15];
Aptr = ^Link;
Link = Record
Data : Str15;
Node : Aptr;
end;
Var
FirstItem, NewItem, OldItem : Aptr;
Procedure CreateList;
begin
Writeln('Linked list BEForE insertion of node.');
Writeln;
New(FirstItem);
FirstItem^.Data := 'inSERT ';
Write(FirstItem^.Data);
Write(' ');
New(FirstItem^.Node);
FirstItem^.Node^.Data := 'HERE';
Writeln(FirstItem^.Node^.Data);
FirstItem^.Node^.Node := NIL;
end;
Procedure InsertALink;
begin
Writeln; Writeln;
Writeln('Linked list AFTER insertion of node.');
Writeln;
Write(FirstItem^.Data);
New(NewItem);
NewItem^.Node := OldItem^.Node;
OldItem^.Node := NewItem;
FirstItem^.Node^.Data := 'inSERTEDLinK';
Write(FirstItem^.Node^.Data);
New(FirstItem^.Node^.Node);
FirstItem^.Node^.Node^.Data := ' HERE';
Writeln(FirstItem^.Node^.Node^.Data);
FirstItem^.Node^.Node^.Node := NIL;
end;
Procedure DisposeList;
begin
Dispose(FirstItem^.Node^.Node);
FirstItem^.Node := NIL;
end;
begin
ClrScr;
CreateList;
Writeln;
InsertALink;
DisposeList;
end.
[Back to POINTERS SWAG index] [Back to Main SWAG index] [Original]