M叉树的问题?

kittyhuaner 2004-04-09 09:51:19
对一个完全M叉树,(1)第i层有最多几个结点?
(2)对于结点K,它的母亲结点的编号?
(3)对于结点K,它的孩子结点的编号?
(4)对于结点K,与它同母亲结点的且是它右兄弟的结点编号的范围?
...全文
61 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnefuil 2004-04-10
对于结点K,其母亲结点为[k/M],子结点为k*M+i (i=0,1,2,..,M-1)
其实这和M进制数本质上是一致的
回复
gnefuil 2004-04-10
就是要转成M进制数,转换过程不难吧
转换成M进制数的好处在于可以把序号直接定位到具体位置上,再根据具体位置的规律反推回序号,这样处理比较简单
直接推公式也要按照这个过程去做的
回复
gnefuil 2004-04-09
你就把完全M叉树理解成M进制数,一个结点对应一个M进制数
1。第i层最多有长度为i-1的M进制数的个数(很容易算吧)
2。对结点K,首先知道它的M进制数(就是它的序号),把最后一位截去,就知道它的母亲结点的编号
3。对结点K,知道它的M进制数,那么在最后一位后面加一位(0,1,2,..m-1),就是它孩子结点的编号
4。同母亲结点的编号的差别只在最后一位,那么在各位上比结点K的M进制数大的结点既是
回复
kittyhuaner 2004-04-09
mysword(一怒拔剑)

你说的这个办法确实简单,可是如果告诉你的是具体的结点的编号(十进制)不会要先转换成M进制吧?

如果改为
对一个完全M叉树,(1)第i层有最多几个结点?
(2)对于编号为K的结点,它的母亲结点的编号?
(3)对于编号为K的结点,它的孩子结点的编号?
(4)对于编号为K的结点,与它同母亲结点的且是它右兄弟的结点编号的范围?

答案又是?
3X

回复
kittyhuaner 2004-04-09
mysword(一怒拔剑)
看看下面这个帖子。

http://expert.csdn.net/Expert/topic/2941/2941360.xml?temp=.3264887
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告