type listlink = ^listcell; listelement = integer; {This has been assumed INTEGER for this file.} {User may modify to type desired. Modify PRINT} {and COMPARE when you do.} listcell = record left : listlink; right : listlink; element : listelement; end; list = listlink; listposition = listlink; function compare(e1,e2 : listelement):integer; {+--- on entry - e1 and e2 are transfered in for a comparison | on exit - compare returns +1 iff e1 > e2 | 0 iff e1 = e2 | -1 iff e1 < e2 +----------------------------------------------------------------------} begin {compare} if e1 > e2 then compare := 1 else if e1 < e2 then compare := -1 else compare := 0; end; {compare} procedure print(var out:text; e:listelement); {+--- on entry - e is contained in the list and is ready for output | on exit - e has been written to the corresponding out file +------------------------------------------------------------------------} begin {print} writeln (out,e:4); end; {print} .