Python教程

二叉树的构建python实现

本文主要是介绍二叉树的构建python实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class Node(object):
    def __init__(self,val=None,left=None,right=None):
        """构建树的节点"""
        self.val=val #值
        self.left=left #左树
        self.right=right #右树

class Tree(object):
    """二叉树结构"""
    def __init__(self,node=None):
        self.root=node
    def add(self,item=None):
        """添加节点,item为数值"""
        node=Node(val=item) #建立节点
        if not self.root or self.root.val is None: #空树
            self.root=node
        else:
            queue=[]
            queue.append(self.root) #通过队列来完成二叉树的构建
            while True:
                current_node=queue.pop(0) #当前待判断的节点
                if current_node.val is None:
                    continue
                if not current_node.left: #左树为空
                    current_node.left=node
                    return
                elif not current_node.right:
                    current_node.right=node
                    return
                else: #左右都有值,添加到queue待弹出
                    queue.append(current_node.left)
                    queue.append(current_node.right)

tree=Tree()
for i in range(10):
    if i==3:
        i=None
    tree.add(i)
        

  

这篇关于二叉树的构建python实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!