【树】二叉树的基本概念与性质

二叉树的定义与基本操作

1.定义:把满足以下两个条件的树型结构叫做二叉树(Binary Tree):

  • (1) 每个结点的度都不大于 2;
  • (2) 每个结点的孩子结点次序不能任意颠倒。

由此定义可看出,一个二叉树中的每个结点只能含有 0、1 或 2 个孩子,而且每个孩子有左右之分。位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。

在这里插入图片描述
在这里插入图片描述

二叉树的性质
性质1:在二叉树的第 i 层上至多有 2^(i-1)个结点(i≥1)。

在这里插入图片描述

性质2:深度为 k 的二叉树至多有 2^k-1 个结点(k≥1)。

在这里插入图片描述

性质3:对任意一棵二叉树 T,若终端结点数为 n0,而其度数为 2 的结点数为 n2,则 n0= n2+1

在这里插入图片描述

满二叉树

在这里插入图片描述
满二叉树的顺序表示,即从二叉树的根开始,层间从上到下,层内从左到右,逐层进行编号(1,2,···,n)

完全二叉树

在这里插入图片描述

性质4:具有 n 个结点的完全二叉树的深度为 [log2 n]+1

在这里插入图片描述

性质5

在这里插入图片描述

二叉树的存储结构

二叉树是非线性的,每一个结点最多有两个直接后继

顺序存储

在这里插入图片描述在这里插入图片描述

链式存储

在这里插入图片描述

typedef struct Node
{
    DataType data;
    struct Node *LChild;
    struct Node *RChild;
} BiTNode, *BiTree;

在这里插入图片描述

若一个二叉树含有 n 个结点,则它的二叉链表中必含有 2n 个指针域,其中必有 n+1 个空的链域。
证明:分支数目 B=n-1,即非空的链域有 n-1 个,故空链域有 2n-(n-1)=n+1 个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值