home *** CD-ROM | disk | FTP | other *** search
- {@@@@@@@@@@@ copyright (C) 1984 by Neil J. Rubenking @@@@@@@@@@@@@@@@@@@@@@@@
- The purchaser of these procedures and functions may include them in COMPILED
- programs freely, but may not sell or give away the source text.
-
- THIS is a kind of template for a generic QUEUE (First In, First Out).
- You probably won`t $INCLUDE it in a program, but it's handy to have
- it for reference on disk.
- }
-
- type
- ListType = ^node;
- node = record
- AnItem : ItemType;
- next : ListType;
- end;
- {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
- procedure AddItem(ItemToAdd:ItemType; VAR ItemList, EndPointer : ListType);
- begin
- if ItemList = nil then
- begin { You MUST declare the type }
- new(ItemList); { "ItemType" in your program. }
- ItemList^.AnItem := ItemToAdd; { It can be anything. }
- ItemList^.next := nil;
- EndPointer := ItemList;
- end
- else
- begin
- new(EndPointer^.next);
- EndPointer := EndPointer^.next;
- EndPointer^.AnItem := ItemToAdd;
- EndPointer^.next := nil;
- end;
- end;
- {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
- procedure DisposeAll(VAR ItemList : ListType); { A queue or other linked }
- var { continues to take up space }
- tempPointer : ListType; { in memory until you dispose }
- begin { of it. You have to get rid }
- while ItemList <> nil do { of it carefully, without }
- begin { losing track of it! }
- tempPointer := ItemList;
- ItemList := ItemList^.next;
- dispose(tempPointer);
- end;
- end;