码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-23 22:11:32      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:http   就是   存在   inf   i+1   ==   span   有序   满二叉树   

 

二叉树的定义

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

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

技术分享图片

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

就是说,在二叉树中不存在度大于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

 

二叉树的抽象数据类型

 

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

标签:http   就是   存在   inf   i+1   ==   span   有序   满二叉树   

原文地址:https://www.cnblogs.com/wbyixx/p/9356977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!