给定一哈夫曼树的生成过程,求一组能够成此哈夫曼的数(数的值尽可能小)。

spydh 2011-03-31 10:50:26
例如,有一组数a1.v<=a2.v<=a3.v<=...<=an.v。生成过程令b=a1+a2,将b重新插入到序列,树中删除a1,a2.(所求数组值存到w内,w初值为0,v为原来的权值)
有a1.v<=a2.v<=a3.v<=...<=ai.v<=b.v<=..<=an.v。设置一个mark=0,从a3(头结点)开始,若ai.v!=ai-1.v,则mark++;遍历到b;a1.w=a1.w>mark?a1.w:mark; ai.w=ai.v==ai-1.v?ai-1.w:(ai.w>(ai-1.w+1)?ai.w:ai-1.w+1);以此类推,能够得到一组数,可是,所求的数有时,并不比原来权值小。
...全文
95 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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