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.