扫码加入训练营

牢记核心词

学习得礼盒

计算机考研:数据结构常用算法精析(6)

2013-12-11 14:35:35来源:新东方在线编辑

  或:(Kh-1 -1)

  即:Kh-1

  取对数:(h-1)

  因为h为正整数,所以:h=

  含有n(n ≥1)个结点的完全二叉树的深度

  n个叶结点的非满的完全二叉树的高度是élog2nù+1。(最下层结点数>=2)。

  设完全二叉树BT结点数为n,结点按层编号。对BT中第i结点(1≤i≤n),注意结点编号从1开始,在数组存储时也是从数组1开始,若题目已然确定从0开始,则在计算孩子父亲结点时都需要重新变换一下。

  有:

  (1)若i=1,则i结点(编号为i的结点)是BT之根,无双亲;否则( i>1),parent(i)= ,即i结点双亲的编号为 ;

  (2)若2i>n,则i结点无左子,否则Lchild(i)=2i,即i结点的左子位于第2i号结点;

  (3)若2i+1>n,则i结点无右子,否则Rchild(i)=2i+1,即i结点的右子位于第2i+1号结点。

  证明:采用数学归纳法,先证(2)和(3)。

  设n个结点的完全二叉树如图所示。

  i=1时,显然 i 结点的左子编号为2,i的右子编号为2+1=3,除非2>n , 3>n 。

  设对i结点,命题(2)、(3)成立,即Lchild(i)=2i,Rchild(i)=2i+1。根据按层编号规则,i+1时有:

  Lchild(i+1)=(2i+1)+1=2(i+1),除非2(i+1)>n,

  Rchild(i+1)=(2i+1)+1+1=2(i+1)+1,除非2(i+1)+1>n,

  故(2)、(3)得证。

  再证(1),它可看作是(2)、(3)的推广。

  因Lchild(j)=2j,所以Parent(2j)=j,令2j=i,有 Parent(i)=i/2= (i/2为正整数);

  又:Rchild(j)=2j+1,所以Parent(2j+1)=j,令2j+1=i (i=3,5,7…),有:

  Parent(i)=(i-1)/2= ,证毕。

  n

  2i

  2i+1

  1

  2

  3

  2i+1+1

  2i+1+2

  i

  i+1

考研公开课小程序

本文关键字: 计算机 考研 数据结构

考研英语核心词汇营

背词+听课+练习+督学,学习得礼盒

更多资料
更多>>
更多内容

关注新东方在线考研服务号

获得21考研真题及答案解析

1. 打开手机微信【扫一扫】,识别上方二维码;
2.点击【关注公众号】,获取资料大礼包。

近10年考研真题及答案免费下载
更多>>
更多公开课>>
更多>>
更多资料