home *** CD-ROM | disk | FTP | other *** search
- /* queue class GCW 23/01/95 */
-
- class queue
- {
- front, rear;
- add(x); // add an item to the rear
- /* get() returns nil from an empty queue */
- get(); // remove an item from the front
- }
-
- queue::queue()
- {
- front = rear = nil;
- return this;
- }
-
- queue::add(x)
- {
- if (typeof(rear))
- rear = (rear[1] = vector { x; nil; });
- else
- front = rear = vector { x; nil; };
- }
-
- queue::get()
- {
- local item;
- if (!typeof(front)) return nil;
- item = front[0];
- if (!typeof(front = front[1])) rear = nil;
- return item;
- }
-
-