Difference between revisions of "Binary Search Tree Assignment"
Jump to navigation
Jump to search
Line 6: | Line 6: | ||
=Code To Implement= | =Code To Implement= | ||
− | + | * binary_tree/binary_tree.sml | |
+ | * binary_tree/apps_using_binary_tree.sml | ||
− | + | ||
− | === | + | ==BinaryTree== |
− | |||
− | |||
===map=== | ===map=== | ||
Line 39: | Line 38: | ||
==Application== | ==Application== | ||
+ | ===max_height=== | ||
+ | fun max_height(t : 'a BinaryTree.tree) : int = | ||
+ | raise NotYetImplemented | ||
===sum_int_tree=== | ===sum_int_tree=== | ||
− | fun sum_int_tree(t : int tree) : int = | + | fun sum_int_tree(t : int BinaryTree.tree) : int = |
− | + | raise NotYetImplemented | |
=Testing= | =Testing= | ||
studioTree/unittest_tree.sml | studioTree/unittest_tree.sml |
Revision as of 17:00, 21 February 2020
We will build some of the Higher Order Function Hall of Fame inductees but for a tree datatype.
datatype 'a tree = LEAF | BRANCH of 'a tree * 'a * 'a tree
Contents
Code To Implement
- binary_tree/binary_tree.sml
- binary_tree/apps_using_binary_tree.sml
BinaryTree
map
reference: List.map
fun map(f : 'a -> 'b, t : 'a tree) : 'b tree = raise NotYetImplemented
filter
reference: List.filter
fun filter(predicate : 'a -> bool, t : 'a tree) : 'a tree = raise NotYetImplemented
find_lnr
reference: List.find
reference: In-order traversal
fun find_lnr(predicate : 'a -> bool, t : 'a tree) : 'a option = raise NotYetImplemented
fold_lnr
reference: List.foldl
reference: In-order traversal
fun fold_lnr(f : 'a * 'b -> 'b, init : 'b, t : 'a tree ) : 'b = raise NotYetImplemented
Application
max_height
fun max_height(t : 'a BinaryTree.tree) : int = raise NotYetImplemented
sum_int_tree
fun sum_int_tree(t : int BinaryTree.tree) : int = raise NotYetImplemented
Testing
studioTree/unittest_tree.sml