Question
Please use plait in Racket The following Tree datatype implements a binary tree with a number in each node and leaf: (define-type Tree (leaf [val
Please use plait in Racket
The following Tree datatype implements a binary tree with a number in each node and leaf: (define-type Tree (leaf [val : Number]) (node [val : Number] [left : Tree] [right : Tree]))
A) Contains?
Implement the function contains?, which takes a tree and a number and returns #t if the number is in the tree, #f otherwise.
Example: (contains? (node 5 (leaf 6) (leaf 7)) 6) should produce #t. The second argument to the contains? function is along for the ride.
B) Big Leaves?
Implement the function big-leaves?, which takes a tree and returns #t if every leaf is bigger than the sum of numbers in the path of nodes from the root that reaches the leaf.
Examples: (big-leaves? (node 5 (leaf 6) (leaf 7))) should produce #t, while (bigleaves? (node 5 (node 2 (leaf 8) (leaf 6)) (leaf 7))) should produce #f (since 6 is smaller than 5 plus 2). The big-leaves? function should be a thin wrapper on another function, perhaps bigger-leaves?, that accumulates a sum of node values.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started