PROGRAM 8
(* filename: prog13.sml author: anthony f. ortiz *) (* this program performs a inorder traversal, preorder traversal, and a *) (* sort on a binary tree. *) datatype 'a btree = empty | node of ('a btree * 'a * 'a btree); fun inorder (empty) = [] | inorder (node (a, b, c)) = inorder (a) @ [b] @ inorder (c); fun preorder (empty) = [] | preorder (node (a, b, c)) = [b] @ preorder (a) @ preorder (c); inorder (node (empty, 1, empty)); inorder (node (node (empty, 2, empty), 1, node (empty, 3, empty))); inorder (node (node (node (empty, 4, empty), 2, node (empty, 5, empty)), 1, node (node (empty, 6, empty), 3, node (empty, 7, empty)))); preorder (node (empty, 1, empty)); preorder (node (node (empty, 2, empty), 1, node (empty, 3, empty))); preorder (node (node (node (empty, 4, empty), 2, node (empty, 5, empty)), 1, nod e (node (empty, 6, empty), 3, node (empty, 7, empty)))); (* filename: prog13.out author: anthony f. ortiz *) Standard ML of New Jersey, Version 110.0.6, October 31, 1999 [CM; autoload enabl ed] - use "prog13.sml"; [opening prog13.sml] datatype 'a btree = empty | node of 'a btree * 'a * 'a btree val inorder = fn : 'a btree -> 'a list val preorder = fn : 'a btree -> 'a list GC #0.0.0.0.1.8: (10 ms) val it = [1] : int list val it = [2,1,3] : int list val it = [4,2,5,1,6,3,7] : int list val it = [1] : int list val it = [1,2,3] : int list val it = [1,2,4,5,3,6,7] : int list val it = () : unit - ^Z Stopped (user)
BACK TO CS6140 PAGE.