数据结构 二叉树的基本概念
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
二叉树的抽象数据类型
以上是关于数据结构 二叉树的基本概念的主要内容,如果未能解决你的问题,请参考以下文章