Iterators and Generators: Difficult Solutions
Write a generator function that goes through a tree and yields all of the paths in the tree where the leaf value in the path is equal to val, where each path is represented as a linked list.
def tree_gen(t, val):
>> t = Tree(1, [Tree(2, [Tree(3)]), Tree(7), Tree(3)])
>>> list(tree_gen(t, 3))
[Link(1, Link(2, Link(3))), Link(1, Link(3))]
if t.label == val:
for branch in t.branches:
for path in tree_gen(branch)
yield Link(t.label, path)
Write a generator function that yields the elements in a list in order from greatest to least. You can assume there is at least one element in the list, and that all elements are unique.
>> lst = [8, 1, 5, 7]
>>> gen = sort_list_gen(lst)
[8, 7, 5, 1]
while len(lst) > 0: