M叉树的问题?

kittyhuaner 2004-04-09 09:51:19
对一个完全M叉树,(1)第i层有最多几个结点?
(2)对于结点K,它的母亲结点的编号?
(3)对于结点K,它的孩子结点的编号?
(4)对于结点K,与它同母亲结点的且是它右兄弟的结点编号的范围?
...全文
243 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧