Question: Complete using the OCaml programming language For this section, put your answers in trees.ml . IMPORTANT: In this part, you may not use recursion unless

Complete using the OCaml programming language

Complete using the OCaml programming language For this section, put your answers

For this section, put your answers in trees.ml . IMPORTANT: In this part, you may not use recursion unless otherwise specified. Higher-order functions aren't just for lists! Recall the algebraic data type of binary trees from lecture: typeatree=LeafNodeofaatree*atree In this section, you'll implement and use higher-order functions over trees. As an example, we implemented the function tree_fold : ' a tree 'b ( ' a> 'b 'b ' b b that folds over trees like folds over lists. For example, \[ \text { tree_fold (Node (v1, Node (v2, Leaf, Leaf), Leaf)) u } f \] is fv1(fv2u)u. Note that our implementation isn't tail-recursive. The Cornell book (linked from the course website) gives a tailrecursive version. 1. Implement the function tree_map : 'a tree ( ' a> 'b) 'b tree that returns a tree with the same structure as the original tree, but with the given function applied to every node. Use tree_fold. Do not use recursion. There are various ways of traversing a tree to flatten it. Consider the tree below. An in-order traversal goes down the left subtree of a node first, then visits the node itself, then the right subtree. A inorder traversal of the above tree would visit nodes in the order 4, 2, 5, 1,3. You can think of this as basically visiting the nodes left-to-right as they're drawn on the page. A pre-order traversal visits the node itself, then the left subtree, then the right subtree. A pre-order traversal of the above tree visits the nodes in the order 1,2,4,5,3. 2. Implement the function inorder : ' ' tree ' ' list that lists the nodes of a tree in the order given by inorder traversal. (So, applied to the above tree would give [4;2;5;1;3]. Use tree_fold. Do not use recursion. 3. Implement the function preorder : 'a tree ' a list that lists the nodes of a tree in the order given by an pre-order traversal. (So, applied to the above tree would give [1;2;4;5;3].) Use tree_fold. Do not use recursion

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!