6.1-1在高度为h的堆中,元素个数最多和最少分别是多少?
最少是最底层只有一个叶子结点:2^0+2^1+...+2^(h-1)+1=2^h
最多是这个堆(包括最底层)是一个完全二叉树:2^0+2^1+...+2^(h-1)+2^h=2^(h+1)-1
6.1-2证明:含n个元素的堆的高度为lgn.
设这个堆的高度为h
这个堆的总结点2^0+2^1+...+2^(h-1)+O(2^h)=n 其中1<=O(2^h)<=2^h
所以1+2^h-1<=2^h-1+O(2^h)<=2^h-1+2^h
2^h<=n<=2^(h+1)-1<2^(h+1)
lgn-1<h<lgn
h=向下取整lgn
6.1-3证明:在最大堆的任意子树中,该子树所包含的最大元素在该子树的根结点上。
6.1-4假设最大堆的所有元素都不相同,那么该堆的最小元素应该位于哪里?
最小元素必然是在最底层或者是没有子结点
最少是最底层只有一个叶子结点:2^0+2^1+...+2^(h-1)+1=2^h
最多是这个堆(包括最底层)是一个完全二叉树:2^0+2^1+...+2^(h-1)+2^h=2^(h+1)-1
6.1-2证明:含n个元素的堆的高度为lgn.
设这个堆的高度为h
这个堆的总结点2^0+2^1+...+2^(h-1)+O(2^h)=n 其中1<=O(2^h)<=2^h
所以1+2^h-1<=2^h-1+O(2^h)<=2^h-1+2^h
2^h<=n<=2^(h+1)-1<2^(h+1)
lgn-1<h<lgn
h=向下取整lgn
6.1-3证明:在最大堆的任意子树中,该子树所包含的最大元素在该子树的根结点上。
最大堆的任意子结点作为父结点,都要符合最大堆的性质所以第i个结点
A[PARENT(i)]>=A[i]
6.1-4假设最大堆的所有元素都不相同,那么该堆的最小元素应该位于哪里?
最小元素必然是在最底层或者是没有子结点