TYPE
Element = POINTER TO ElementRec;
ElementRec =
RECORD
go: GraphicalObject;
next: Element;
END;
ListOfGraphicalObjects =
RECORD
head, tail: Element;
length: INTEGER;
END;
PROCEDURE AddElement(list: ListOfGraphicalObjects;
go: GraphicalObject);
VAR element: Element;
BEGIN
NEW(element); element.go := go; element.next := NIL;
IF list.head = NIL THEN
list.head := element;
ELSE
list.tail.next := element;
END;
list.tail := element; INC(list.length);
END AddElement;
(* ... *)
AddElement(list, circle); AddElement(list, rectangle);
|