python描述二叉树

来源:互联网 发布:刘德华 17岁 知乎 编辑:程序博客网 时间:2024/05/02 03:04

二叉树的节点以及树的创建

通过Node类定义三个属性,分别为elem本身的值,还有lchild左孩子和rchild右孩子

class Node(object):    """节点类"""    def __init__(self,elem=-1,lchild=None,rchild=None):        self.elem = elem        self.lchild = lchild        self.rchild = rchild

树的创建,创建一个树的类,并给一个root根节点,一开始为空,随后添加节点

class Tree(object):    """树类"""    def __init__(self,root=None):        self.root = root    def add(self,elem):        """为树添加节点"""        node = Node(elem)        # 如果树是空的,则对根节点赋值        if self.root == Node:            self.root = node        else:            queue = []            queue.append(self.root)            # 对已有的节点进行层次遍历            while queue:                # 弹出队列的第一个元素                cur = queue.pop(0)                if cur.lchild == None:                    cur.lchild = node                    return                else:                    # 如果左右子树都不为空,加入队列继续判断                    queue.append(cur.lchild)                    queue.append(cur.rchild)
原创粉丝点击