数据结构 二叉树的基本概念

Posted wbyixx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 二叉树的基本概念相关的知识,希望对你有一定的参考价值。

 

二叉树的定义

一棵二叉树是结点的一个有限集合,

该集合或者为空,或者是由一个根结点加上两棵分别被称为左子树和右子树的,互不相交的二叉树组成。

技术分享图片

二叉树的特点是每个结点最多有两个子女,分别称为左子女和右子女。

就是说,在二叉树中不存在度大于2的结点,并且二叉树的子树有左右之分,

其子树的次序不能颠倒,二叉树是有序树。

因此,二叉树有五种不同的形态:空树,只有根结点,只有左子树,只有右子树,左子树右子树都有

技术分享图片

 

满二叉树:深度为k的满二叉树是有2^(k-1)个结点的二叉树。

在满二叉树中,每一层的结点都达到了最大个数。

除最底层结点的度为0外,其他各层结点的度都为2.

 

完全二叉树:每一个结点都与高度为k的满二叉树的编号为1-n的结点一一对应,则称为完全二叉树。

特点是:第一层到第k-1层是满二叉树,最后一层或者是满的,或者从右向左连续缺失若干结点。

 

二叉树的性质:

1.在二叉树的第i (i>=1) 层最多有2^(i-1)个结点

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

3.对任何一棵二叉树,如果其叶结点个数为n0, 度为2的非叶结点的个数为n2,则n0=n2+1

4.具有n个结点的完全二叉树的深度为 ceil(log2(n+1))  (有的定义为floor(log2(n) +1))

5.如果将一棵具有n个结点的完全二叉树自顶向下,同一层自左向右编号。顺序存入一个一维数组。

则有以下关系:

  若i==1,则结点i为根,无父结点;若i大于1,则结点i的父节点为floor(i/2)

  若2*i<=n,则结点i的左子女为结点2*i

  若2*i+1<=n,则结点i的右子女为结点2*i+1

  若结点的编号i为奇数,且i不等于1,它处于右兄弟位置,则它的左兄弟为i-1

  若结点的编号i为偶数,且i不等于1,它处于左兄弟位置,则它的有兄弟为i+1

  结点i所处的层次,floor(log2i) + 1

 

二叉树的抽象数据类型

 

以上是关于数据结构 二叉树的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

数据结构 二叉树的基本概念

数据结构 树与二叉树的基本概念结构特点及性质

二叉树的基本概念

[05数据结构](初阶)二叉树的基本理解堆的概念和结构及二叉树OJ面试题

Java数据结构————二叉树

Java集合与数据结构 二叉树