数据结构——二叉树知识总结

本文详细介绍了二叉树的定义、特点、特殊类型如斜树、满二叉树和完全二叉树,以及二叉树的性质。此外,还探讨了二叉树的抽象数据类型定义、遍历操作(前序、中序、后序和层序遍历)以及如何通过链表和数组实现二叉树。
摘要由CSDN通过智能技术生成

  

  二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别:

树中结点的最大度数没有限制,而二叉树结点的最大度数为2;

树的结点无左、右之分,而二叉树的结点有左、右之分。

一、二叉树的逻辑结构

1、二叉树的定义

二叉树是nn≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

2、二叉树的特点:

⑴ 每个结点最多有两棵子树;

⑵ 二叉树是有序的,其次序不能任意颠倒。

3、特殊的二叉树

斜树

所有结点都只有左子树的二叉树称为左斜树;

所有结点都只有右子树的二叉树称为右斜树;

3.左斜树和右斜树统称为斜树。

斜树的特点:

在斜树中,每一层只有一个结点;

斜树的结点个数与其深度相同。

满二叉树

在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。

满二叉树的特点:

叶子只能出现在最下一层;
只有度为0和度为2的结点。

满二叉树在同样深度的二叉树中结点个数最多

满二叉树在同样深度的二叉树中叶子结点个数最多

完全二叉树

对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤in)的结点与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同。

在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一棵完全二叉树。

完全二叉树的特点:

 叶子结点只能出现在最下两层,且最下层的叶子结点都集中在二叉树的左部;

完全二叉树中如果有度为1的结点,只可能有一个,且该结点只有左孩子。

深度为k的完全二叉树在k-1层上一定是满二叉树。

4、二叉树的基本性质

(1)二叉树的第i层上最多有2i-1个结点(i≥1)。

(2)棵深度为k的二叉树中,最多有2k-1个结点,最少有k个结点。

(深度为k且具有2k-1个结点的二叉树一定是满二叉树,

深度为k且具有k个结点的二叉树不一定是斜树。)

(3)在一棵二叉树中,如果叶子结点数为n0,度为2的结点数为n2,则有: n0=n2+1。

(4)的完全二叉树的深度为 log2+1。

(5)对一棵具有n个结点的完全二叉树中从1开始按层序编号,则对于任意的序号为i(1≤in)的结点(简称为结点i),有:

如果i>1,则结点i的双亲结点的序号为  i/2;

如果i=1,则结点i是根结点,无双亲结点。

如果2in,则结点i的左孩子的序号为2i

如果2in,则结点i无左孩子。

如果2i+1≤n,则结点i的右孩子的序号为2i+1;

如果2i+1>n,则结点 i无右孩子。

对一棵具有n个结点的完全二叉树中从1开始按层序编号,则

结点 i的双亲结点为   i/2;
结点 i的左孩子为2 i

结点i的右孩子为2i+1。

5、二叉树的抽象数据类型定义

ADT BiTree

Data

    由一个根结点和两棵互不相交的左右子树构成,

    结点具有相同数据类型及层次关系

Operation

   InitBiTree

      前置条件:无

      输入:无

      功能:初始化一棵二叉树

      输出:无

      后置条件:构造一个空的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值