(LETREC INSERTALL (INSERTALL LAMBDA (LST) (QUOTE NIL)) (ISLEAF LAMBDA (TREE) (IF (ATOM TREE) (QUOTE F) (IF (EQ (CAR TREE) (QUOTE L)) (QUOTE T) (QUOTE F)))) (MAKELEAF LAMBDA (ITEM) (CONS (QUOTE L) (CONS ITEM (CONS (QUOTE NIL) (CONS (QUOTE NIL) (QUOTE NIL)))))) (ISNODE LAMBDA (TREE) (IF (ATOM TREE) (QUOTE F) (IF (EQ (CAR TREE) (QUOTE N)) (QUOTE T) (QUOTE F)))) (ISTREE LAMBDA (TREE) (OR (ISLEAF TREE) (ISNODE TREE))) (ISEMPTY LAMBDA (TREE) (EQ TREE (QUOTE NIL))) (LEFTSUB LAMBA (TREE) (IF (ISNODE TREE) (CAR (CDR (CDR TREE))) (QUOTE NIL))) (RIGHTSUB LAMBA (TREE) (IF (ISNODE TREE) (CAR (CDR (CDR (CDR TREE)))) (QUOTE NIL))) (MAX LAMBDA (X Y) (IF (LEQ X Y) Y X)) (MIN LAMBDA (X Y) (IF (LEQ X Y) X Y)) (NODEVAL LAMBDA (NODE) (CAR (CDR NODE))) (DEPTH LAMBDA (TREE) (IF (ISEMPTY TREE) (QUOTE 0) ;NO CHILDREN THIS WAY (IF (ISLEAF TREE) (QUOTE 1) (PLUS (QUOTE 1) (MAX (DEPTH (LEFTSUB TREE)) (DEPTH (RIGHTSUB TREE))))))) (ISHEAP LAMBDA (TREE) (IF (ISEMPTY TREE) (QUOTE T) (IF (ISLEAF TREE) (QUOTE T) (IF (LEQ (NODEVAL TREE) (NODEVAL (LEFTSUB TREE))) (IF (LEQ (NODEVAL TREE) (NODEVAL (RIGHTSUB TREE))) (IF (ISHEAP (LEFTSUB TREE)) (ISHEAP (RIGHTSUB TREE)) (QUOTE F)) (QUOTE F)) (QUOTE F)) (QUOTE F)) (QUOTE F))) (INSERT LAMBDA (ITEM HEAP) (IF (ISEMPTY HEAP) (MAKELEAF ITEM) (IF (ISLEAF HEAP)