Saltar al contenido

ejemplo de biblioteca de árbol binario de Python

Al fin después de mucho luchar ya encontramos la contestación de este rompecabezas que agunos lectores de nuestro sitio han presentado. Si tienes algún detalle que compartir no dudes en compartir tu conocimiento.

Ejemplo 1: cómo crear un árbol binario en Python

classNode:def__init__(self, data):

        self.left =None
        self.right =None
        self.data = data

    definsert(self, data):# Compare the new value with the parent nodeif self.data:if data < self.data:if self.left isNone:
                    self.left = Node(data)else:
                    self.left.insert(data)elif data > self.data:if self.right isNone:
                    self.right = Node(data)else:
                    self.right.insert(data)else:
            self.data = data

# Print the treedefPrintTree(self):if self.left:
            self.left.PrintTree()print( self.data),if self.right:
            self.right.PrintTree()# Use the insert method to add nodes
root = Node(12)
root.insert(6)
root.insert(14)
root.insert(3)

root.PrintTree()

Ejemplo 2: árbol binario en python

#!/usr/bin/pythonclassNode:def__init__(self, val):
        self.l =None
        self.r =None
        self.v = val

classTree:def__init__(self):
        self.root =NonedefgetRoot(self):return self.root

    defadd(self, val):if(self.root ==None):
            self.root = Node(val)else:
            self._add(val, self.root)def_add(self, val, node):if(val < node.v):if(node.l !=None):
                self._add(val, node.l)else:
                node.l = Node(val)else:if(node.r !=None):
                self._add(val, node.r)else:
                node.r = Node(val)deffind(self, val):if(self.root !=None):return self._find(val, self.root)else:returnNonedef_find(self, val, node):if(val == node.v):return node
        elif(val < node.v and node.l !=None):
            self._find(val, node.l)elif(val > node.v and node.r !=None):
            self._find(val, node.r)defdeleteTree(self):# garbage collector will do this for us. 
        self.root =NonedefprintTree(self):if(self.root !=None):
            self._printTree(self.root)def_printTree(self, node):if(node !=None):
            self._printTree(node.l)printstr(node.v)+' '
            self._printTree(node.r)#     3# 0     4#   2      8
tree = Tree()
tree.add(3)
tree.add(4)
tree.add(0)
tree.add(8)
tree.add(2)
tree.printTree()print(tree.find(3)).v
print tree.find(10)
tree.deleteTree()
tree.printTree()

Recuerda que tienes la capacidad de comentar .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *