Beruflich Dokumente
Kultur Dokumente
Type
ListData = Record
LastName : String15;
FirstName : String15;
StreetAddress : String25;
Zip : Integer;
AmountOwed : Real;
End;
List = ^ListNode;
ListNode = Record
data : ListData;
Link : List;
End;
Var
CustList :List;
Begin
L := Nil;
End;
Var
P. Prev : List;
Var
Q : List;
Found : Boolean;
Begin { Find Slot }
Prev := Nil;
Q := L;
Found := False;
While (Q <> Nil) and not Found Do
If Procedes (Item, Q^.data) Then
Found := True
Else
Begin
Prev := Q;
Q := Q^.link;
end
End;
Begin { of ListAdd }
New(P);
P^.data := Item;
FindSlot(L, Item, precedes, Prev);
If Prev = Nil Then { Insert at the front }
Begin
P^.link := L;
L:= P;
end
Else
Begin
P^.link := Prev^.link;
Prev^.link := P
End
end;
Procedure ListUpDate (Var L : List; Target: ListData;
Function Match (Target, anyData:
ListData): Boolean;
NewValue : ListData; Var success:
Boolean);
Var
P : List;
Begin
P := L; Success := False;
While (P <> Nil) and Not Success Do
if Match (Target, P^.data) Then
Begin
Success := True;
P^.data := NewValue;
End
Else
P := P^.link;
End;
Begin
if (Item1.LastName =Item2.LastName) AND
(Item1.FirstName = Item2.FirstName) Then
Beta := True
Else
Beta := False;
end;
{ Precedes function used for ListAdd }
Begin
if item1.LastName < Item2.LastName Then
Alpha := True
Else if item1.lastName > item2.Lastname Then
Alpha := False
Else { same last name }
If item1.FirstName <= Item2.FirstName then
Alpha := True
else
Alpha := False;
End;
Var
Item : ListData;
CustList : List;
S : Boolean;
Item.LastName := Miller';
Item.FirstName := Jean';
Item.StreeAddress := 496 E. Wabash';
Item. Zip := 62843;
Item.AmountOwed := 0.0;