ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arbol general a binario


Enviado por   •  7 de Abril de 2023  •  Práctica o problema  •  725 Palabras (3 Páginas)  •  35 Visitas

Página 1 de 3

Arbol general a binario


clase Nodo:

    valor

    hijoIzquierdo

    hermanoDerecho

    función Nodo(valor):

        valor = valor

        hijoIzquierdo = nulo

        hermanoDerecho = nulo

    función convertirArbolBinario(raiz):

        si raiz.hijoIzquierdo no es nulo:

            convertirArbolBinario(raiz.hijoIzquierdo)

            hijo = raiz.hijoIzquierdo

            mientras hijo.hermanoDerecho no sea nulo:

                hijo.hermanoDerecho = hijo.hermanoDerecho.hijoIzquierdo

                hijo.hermanoDerecho.hermanoIzquierdo = nulo

                hijo = hijo.hermanoDerecho

            convertirArbolBinario(raiz.hijoIzquierdo.hermanoDerecho)


Arbol General a binario importando la librería anytree:
from anytree import Node, RenderTree

from anytree.search import findall_by_attr

class NodoBinario(Node):

    def __init__(self, name, parent=None, children=None):

        super().__init__(name, parent, children)

        self.hermano_derecho = None

def convertir_arbol_binario(raiz):

    if raiz.children:

        convertir_arbol_binario(raiz.children[0])

        hijo = raiz.children[0]

        for nieto in hijo.siblings:

            hijo.hermano_derecho = nieto

            hijo = nieto

        convertir_arbol_binario(raiz.children[0].siblings[0])

        raiz.children = [raiz.children[0]]

# Creamos el árbol general

root = Node("A")

b = Node("B", parent=root)

c = Node("C", parent=root)

d = Node("D", parent=b)

e = Node("E", parent=b)

f = Node("F", parent=c)

# Mostramos el árbol general

for pre, _, node in RenderTree(root):

    print("%s%s" % (pre, node.name))

# Transformamos el árbol en un árbol binario

convertir_arbol_binario(root)

# Mostramos el árbol binario resultante

for pre, _, node in RenderTree(root):

    print("%s%s" % (pre, node.name))

        

Árbol general a binario:
class Node:

    def __init__(self, value):

        self.value = value

        self.children = []

    def add_child(self, child):

        self.children.append(child)

def convert_to_binary(node):

    if not node.children:

        return None

    left_child = node.children[0]

    node.children.pop(0)

    new_node = Node(node.value)

    new_node.add_child(left_child)

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (39 Kb) docx (10 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com