Classe per arbres P71608


Statement
 

pdf   zip

Considereu la següent definició incomplerta de la classe @Tree@ que hauria d’implementar arbres generals no buits:

class Tree:
    def __init__(self, x):
        ...

    def add_child(self, a):
        self.child.append(a)

    def root(self):
        return self.rt

    def ith_child ...
        ...

    def num_children ...
        ...

Completeu l’operació @__init__@, l’operació @ith_child@ que retorna l’ii-èsim fill de l’arbre (comptant des de zero), i l’operació @num_children@ que retorna el nombre de fills de l’arbre.

A més, definiu una subclasse @Pre@ de la classe @Tree@, tot afegint l’operació @preorder@ que retorna una llista amb el recorregut en preordre de l’arbre al qual s’aplica.

Sample session
>>> t = Pre(2)
>>> t.add_child(Pre(3))
>>> t.add_child(Pre(4))
>>> t.num_children()
2
>>> t.ith_child(1).add_child(Pre(5))
>>> t.preorder()
[2, 3, 4, 5]
Information
Author
Gerard Escudero i Albert Rubio
Language
Catalan
Official solutions
Python
User solutions
Python