Python - Ayuda con árboles generales

 
Vista:

Ayuda con árboles generales

Publicado por Adrian (1 intervención) el 06/10/2019 07:45:57
Hola! Necesito ayuda con un problema sobre árboles. Tengo esta implementación, pero la última función no funciona. Se supone que recibe el número h y debería devolver todos los nodos que tienen ese número de hijos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class _NodoArbol:
    #El método privado para crear un nodo de árbol
    def __init__(self, valor, primog):
        self._valor = valor
        self._primog = primog
        self._sig_herm = None
    #El método privado para considerar el nodo como un árbol
    def _arbol(self):
        return Árbol(self)
class Bosque:
    #Crea un bosque vacío
    def __init__(self):
        self._nodo = None
    #Añadir un árbol al bosque
    def añ_árbol(self, a):
        a._nodo._sig_herm = self._nodo
        self._nodo = a._nodo
    #Calcula la longitud de un bosque
    def __len__(self):
        c = self._nodo
        n = 0
        while not c is None:
            n += 1
            c = c._sig_herm
        return n
    #Consulta el i-ésimo árbol del bosque
    def __getitem__(self, indice):
        assert indice != 0, "Indice no valido"
        h = self._nodo
        assert not h is None, "Indice no valido"
        j = 1
        while h and j != indice:
            j += 1
            h = h._sig_herm
        assert not h is None, "Indice no valido"
        return h._arbol()
class Árbol:
    #Planta un arbol en el bosque
    def __init__(self, elem, bosque = None):
        if bosque is None:
            self._nodo = elem
        else:
            self._nodo = _NodoArbol(elem, bosque)
    #Consulta la raiz de un arbol
    def raíz(self):
        return self._nodo._valor
    #Consulta la sucesion de hijos de un arbol
    def hijos(self):
        return self._nodo._primog
    #Calcula el número de hijos de un árbol
    def núm_hijos(self):
        return len(self._nodo._primog)
    #Determina si un árbol es una hoja
    def es_hoja_(self):
        return self.núm_hijos() == 0
 
    def hasHchildren(self, h):
        assert not self.raíz() is None, "El árbol está vacío"
        cont = 0
        c = self.núm_hijos()
        while self._nodo._primog is None:
            if c == h:
                cont += 1
            c = self._nodo._primog
        return cont
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Marcos
Val: 59
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con árboles generales

Publicado por Marcos (14 intervenciones) el 06/10/2019 19:46:06
Hola, coloca el código completo con su implementación...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar