procedure nil_sub_trees(ptr : item_ptr); var index : integer; begin ptr^.sub_items := nil; end; procedure find_empty_sub_item(curr_item : item_ptr; var return_ptr : item_ptr); var ptr,hold : item_ptr; begin ptr := curr_item^.sub_items; if ptr = nil then return_ptr := nil else begin repeat hold := ptr; ptr := ptr^.adj_item; until ptr = nil; return_ptr := hold; end; end;