美文网首页
7-3. 用Python构建一棵树

7-3. 用Python构建一棵树

作者: oneoverzero | 来源:发表于2020-01-28 17:34 被阅读0次

代码如下:

# 定义节点类
class treeNode(object):
    def __init__(self, x=-1, lchild=None, rchild=None):
        self.val = x
        self.lchild = lchild
        self.rchild = rchild

# 构建树
class Tree(object):
    def __init__(self):
        self.root = treeNode()
        self.queue = []
    
    def addNode(self, x):
        new_node = treeNode(x)
        if self.root.val == -1: # 表明此时树还是空的
            self.root = new_node
            self.queue.append(self.root)
        else:
            cur_root = self.queue[0]
            if not cur_root.lchild: # 如果左孩子为空,就对左孩子赋值
                cur_root.lchild = new_node
                self.queue.append(cur_root.lchild)
            else: # 否则,就对右孩子赋值
                cur_root.rchild = new_node
                self.queue.append(cur_root.rchild)
                self.queue.pop(0) # 如果右孩子已经赋上了值,就说明这个二叉树单元已经完整了,此时要弹出当前二叉树单元的父节点

# 用法
if __name__ == '__main__':
    my_tree = Tree()
    my_tree.addNode(10)
    my_tree.addNode(6)
    my_tree.addNode(14)
    my_tree.addNode(4)
    my_tree.addNode(8)
    my_tree.addNode(12)
    my_tree.addNode(16)

相关文章

网友评论

      本文标题:7-3. 用Python构建一棵树

      本文链接:https://www.haomeiwen.com/subject/wahmthtx.html