a .要在一个数组表示d叉堆,必须计算出父子之间的关系。
通过观察,d叉堆父元素下标为i,则最左子元素下标i*d-(d-2),最右子元素下标为i*d-(d-2)+(d-1)=i*d+1。
子元素下标为i,则父元素下标为[i+(d-2)]/d。
这样就可以在数组中表示了。
b. 设该d叉树高度h,则n最小是最下面一层只有一个元素,最大是满二叉树,可以列出不等式
(dh-1)/(d-1)<n<=(dh+1-1)/(d-1)
解这个不等式,得h=logdn(d-1)向下取整
c.d.e小题等会儿用C实现了写下一篇吧。