Oct-04-2019, 03:49 PM
(This post was last modified: Oct-04-2019, 03:49 PM by sashiessay.)
I was able to write a function to recursively add the values within a nested list below:
The next part of my homework question asks us to define a new function that can carry out basic arithmetic operations on the leaves of a tree, i.e., the nested list. Operations are defined for us. I'll use the given addition operation as an example:
op_tree(tree, op, base_call) where tree is the nested list, op is the operation function thus summation in my example, and base_call is the value the function returns when the tree is empty (0 for summation).
op_tree has to be recursive. I'm having trouble starting. It's unclear to me what I'm putting in as the arguments for the op, which requires two: a and b.
def add_tree(tree): """ Recursively computes the addition of all tree leaves. Returns an integer representing the addition. Inputs tree: A list (potentially containing sublists) that represents a tree structure. Outputs total: An int equal to the addition of all leaves of the tree. """ if not isinstance(tree,list): return tree else: sumtree=0 for i in tree: sumtree+=add_tree(i) return sumtreeThis makes sense to me, especially after using Python Tutor.
The next part of my homework question asks us to define a new function that can carry out basic arithmetic operations on the leaves of a tree, i.e., the nested list. Operations are defined for us. I'll use the given addition operation as an example:
def summation(a,b): """ Example operator function. Takes in two integers, returns their sum. """ return a + bIn the new function we are asked to define op_tree, which takes three arguments:
op_tree(tree, op, base_call) where tree is the nested list, op is the operation function thus summation in my example, and base_call is the value the function returns when the tree is empty (0 for summation).
op_tree has to be recursive. I'm having trouble starting. It's unclear to me what I'm putting in as the arguments for the op, which requires two: a and b.