您的当前位置:首页>全部百科>百科问答详情
注:文章内容来源于网络,真实性有待确认,请自行甄别。

构造赫夫曼树的算法的问题构造赫夫曼树的算法中,有下面这段程序:f

发表于:2024-10-24 00:00:00浏览:15次 分类: 电脑/网络-程序设计-C/C++
问题描述:构造赫夫曼树的中,有下面这段程序: for(i=n;i<m;++i) { select(HT.HTree,i-1,s1,s2); //在HT.HTree[0..i-1]当前可选的中选择权值最小的两个结点,其序号分别为s1和s2. HT.HTree[i].lchild=s1; HT.HTree[i].rchild=s2; HT.HTree[i].weight=HT.HTree[s1].weight+HT.HTree[s2].weight; //取左右子树根结构造赫夫曼树的中,有下面这段程序: for(i=n;i<m;++i) { select(HT.HTree,i-1,s1,s2); //在HT.HTree[0..i-1]当前可选的中选择权值最小的两个结点,其序号分别为s1和s2. HT.HTree[i].lchild=s1; HT.HTree[i].rchild=s2; HT.HTree[i].weight=HT.HTree[s1].weight+HT.HTree[s2].weight; //取左右子树根结点权值之和 } 我想问的是:   运行完select(HT.HTree,i-1,s1,s2);这句后,s1,s2这两个序号所在的结点还在吗? 是不是已经删除了?    如果没删除,那下次运行select(HT.HTree,i-1,s1,s2); 这句的时候,最小的两个结点依旧是s1和s2呀.
猜测这两个结点没有被删除(否则lchild和rchild指针都无效了),而是使用了诸如“已被使用”这一类的标签,例如每个结点都带有一个bool变量bUsed,默认值为false, 如果在select中被选中是最小的两个则标记为bUsed=true。 这样在select函数中当前可选的就是那些bUsed的值为false的结点,也即你的描述中提到的“当前可选的”结点。 当然,具体代码的实现细节不知道,感觉上应该是类似的实现策略。

猜你喜欢

如何制作软件我想知道如何使用C++编写软件(具有可视化界面的软件
我想知道如何使用C++编写(具有可视化界面的软件)呢? 希望各位说的详细点,写谢了!
发表于:2024-10-24 00:00:00 浏览:38 分类: 电脑/网络-程序设计-C/C++
C++基础题若intx=2,y=3;,则x&y的结果是:
若int x=2,y=3;,则x&y的结果是:
发表于:2024-10-24 00:00:00 浏览:37 分类: 电脑/网络-程序设计-C/C++
C++把大写改成小写用哪个函数?
++把大写改成小写用哪个函数?
发表于:2024-10-24 00:00:00 浏览:33 分类: 电脑/网络-程序设计-C/C++
哪里能下载中文版的《TheC++ProgrammingLangu?
哪里能下载中文版的《TheC++ProgrammingLangu?
发表于:2024-10-24 00:00:00 浏览:31 分类: 电脑/网络-程序设计-C/C++
哪个源码编辑器最好用?
哪个源码编辑器最好用?
发表于:2024-10-24 00:00:00 浏览:28 分类: 电脑/网络-程序设计-C/C++
C语言中整型可输出以0开头吗?要用C语言编一程序,输出以零开头的
要用编一程序,输出以零开头的一个多位整数,请问能以整型(或长整型)定义这个变量吗?谢谢!
发表于:2024-10-24 00:00:00 浏览:28 分类: 电脑/网络-程序设计-C/C++
C语言能人请进用C语言写一个程序,要求输入N个整数,按从小到大的
用写一个程序,要求输入N个整数,按从小到大的顺序输出,就说说思路。如果N=4,写个具体的程序。
发表于:2024-10-24 00:00:00 浏览:27 分类: 电脑/网络-程序设计-C/C++
用循环找出长度为20的数组中的最大值
用循环找出长度为20的数组中的最大值
发表于:2024-10-24 00:00:00 浏览:23 分类: 电脑/网络-程序设计-C/C++
求助指针变量怎么输出指针变量(存放变量地址的变量是指针变量,用来
怎么输出指针变量(存放变量地址的变量是指针变量,用来指向另一个变量。为了表示指针变量和他所指向的变量之间的关系,在中用“*”符号表示“指向”,。。。) *p怎么输出p
发表于:2024-10-24 00:00:00 浏览:23 分类: 电脑/网络-程序设计-C/C++
用哪个C/C++编译器能够绘出图形啊?(如圆,椭圆,抛物线等)代
写好了,用TC2.0,TC++3.0,win-tc等都编译不出来,用网上给的代码也弄不出来,那个Dev C++不大会用,VC不知道能不能画图。怎么办?郁闷了,到底是出了什么问题了?连个图形都绘不了,分明是在打击我学习的热情啊。
发表于:2024-10-24 00:00:00 浏览:20 分类: 电脑/网络-程序设计-C/C++