二叉树及的性质及二叉树的Python实现

本文介绍了二叉树的基本概念及其重要性质,并提供了二叉树的Python实现代码,包括创建、销毁、清空、判断是否为空及三种不同的遍历方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树形结构是一类非常重要的非线性数据结构,其中树和二叉树最为常用。

二叉树的特点是每个节点至多只有两棵子树,且二叉树的子树有左右之分,其次序不能任意颠倒。

二叉树的性质:

性质 1. 在二叉树的第层上至多有个结点

性质 2. 深度为的二叉树至多有个结点,

性质 3. 对任何一个二叉树,如果其终端结点数为,度为2的结点数为,则

一棵深度为且有个结点的二叉树称为满二叉树。深度为的,有个结点的二叉树,当且仅当其每一个结点都与深度为的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树

完全二叉树的特点:(1)叶子结点只可能在层次最大的两层上出现;(2)对任一结点,若其右分支下的子孙的最大层次为,则其左分支下的子孙的最大层次必为

性质 4. 具有个结点的完全二叉树的深度为

二叉树的实现

class Node:
    def __init__(self,data):
        self.data = data
        self.lchild = None
        self.rchild = None
class BinaryTree:
    def __init__(self):
        self.root = None

    # 创建二叉树
    def CreatBiTree(self,node):
        self.root = node
    # 销毁二叉树
    def DestroyBiTree(self):
        self.root = None
    # 清空二叉树
    def ClearBiTree(self):
        self.root.lchild = None
        self.root.rchild = None
    # 判断二叉树是否为空
    def BiTreeEmpty(self):
        if self.root == None:
            return False
        return True
    
    # 先序遍历二叉树
    def PreOrderTraverse(self,root):
        self.root = root
        if self.root == None:
            return False

        if root:
            print('{} -> '.format(root.data),end = '')
            self.PreOrderTraverse(root.lchild)
            self.PreOrderTraverse(root.rchild)

    # 中序遍历二叉树
    def InOrderTraverse(self,root):

        if root:
            self.InOrderTraverse(root.lchild)
            print('{} -> '.format(root.data), end='')
            self.InOrderTraverse(root.rchild)
    # 后序遍历二叉树
    def PostOrderTraverse(self,root):
        if root:
            self.PostOrderTraverse(root.lchild)
            self.PostOrderTraverse(root.rchild)
            print('{} -> '.format(root.data), end='')
    # 层序遍历二叉树
    def LevelOrderTraverse(self):
        pass


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值