题目内容 (请给出正确答案)
提问人:网友13***556 发布时间:2023年3月31日 21:26
[]

阅读以下预备知识、函数说明和C代码,将应填入(n)处的字句写在对应栏内。[预备知识] ①对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图3所示的最优二叉树和相应的结构数组Ht(数组元素Ht[0]不用)(见表5)。结构数组HT的类型定义如下:define MAXLEAFNUM 20struct node {char ch; / * 当前结点表示的字符,对于非叶子结点,此域不用*/int weight; / * 当前结点的权值*/int parent; / * 当前结点的父结点的下标,为0时表示无父结点*/int Ichild, rchild/ *当前结点的左、右孩子结点的下标,为0时表示无对应的孩子结点* /} Ht[2 * MAXLEAFNUM]; ②用'0'或'1'标识最优二叉树中分支的规则是:从一个结点进入其左(右)孩子结点,就用'0'('1')标识该分支(示例如图3所示)。 ③若用上述规则标识最优二叉树的每条分支后,从根结点开始到叶子结点为止,按经过分支的次序,将相应标识依次排列,可得到由'0'、'1'组成的一个序列,称此序列为该叶子结点的前缀编码。如图3所示的叶子结点a、b、c、d的前缀编码分别是110、0、111、10。 【函数5.1说明】 函数void LeafCode (int root, int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子结点,为所有的叶子结点构造前缀编码。其中形参root为最优二叉树的根结点下标;形参 n为叶子结点个数。 在构造过程中,将Ht[p]. weight域用作被遍历结点的遍历状态标志。 【函数5.1】char * * Hc;void LeafCode (int root, int n){/*为最优二叉树中的n个叶子结点构造前缀编码,root是树的根结点下标* /int i,p = root,cdlen =0;char code[20];Hc=(char* * )malloc(.(n +]) *sizeof(char* )); /* 申请字符指针数组* /for(i=1;i< =p;++i) Ht[ i]. weight =0;/* 遍历最优二叉树时用作被遍历结点的状态标志*/while(p) {/*以非递归方法遍历最优二叉树,求树中每个叶子结点的编码*/ if(Ht[p], weight ==0) { /*向左*/ Ht[ p]. weight =1 if (Ht[p],lchild !=0) { p=Ht[P].lchild; code[cdlen++] ='0';] else if (Ht[p]. rchild ==0) {/* 若是叶子结点,则保存其前缀编码*/ Hc[p] = ( char * ) malloc( (cdlen + 1 ) * sizeof (char) ); (1); strcpy(He[ p] ,code); } } else if (Ht[ pi, weight == 1) { /*向右*/ Ht[p]. weight =2; if(Ht[p].rchild !=0) {p=Ht[p].rchild; code[cdlen++] ='1';}}else{/* Ht[p]. weight ==2,回退*/ Ht[p]. weight =0; p=(2);(3); /*退回父结点*/} }/* while结束* /} 【函数5.2说明】 函数void Decode(char*buff, int root)的功能是:将前缀编码序列翻译成叶子结点的字符序列并输出。其中形参root为最优二叉树的根结点下标;形参buff指向前缀编码序列。 【函数5.2】 void Decode( char * buff, int root) Iint pre =root,p; while ( * buff! = '/0') { p = root; while (p!=0){/*存在下标为p的结点*/ pre=p; if((4))p=Ht[p].lchild; /*进入左子树*/ else p = Ht[p]. rchild; / *进入右子树*./ buff ++; / * 指向前缀编码序列的下一个字符* / } (5); printf('%c', Ht [ pre]. ch); }}

A.shangxueba.cn/images/ct_crmsdxm_crmsdxprogx_00169(20093).jpg'B.1说明】C.1】charD.(nE.lchild;F.rchildG.rchild;H.2说明】I.2】J.lchild;K./

参考答案
十点题库官方参考答案 (由十点题库聘请的专业题库老师提供的解答)
更多“阅读以下预备知识、函数说明和C代码,将应填入(n)处的字句写”相关的问题
板式楼梯底面抹灰面积(包括踏步、休息平台以及≤500mm宽的楼梯井)按水平投影面积乘以系数 ( ) 计算。
A. 1.1 B. 1.15 C. 1.5 D. 2
点击查看答案
在质不育型中最大的缺点是什么?
点击查看答案
下列即时通讯工月中,目前国内用户使用最多的,占据市场份额最大的是()。
A、微软MSNB、腾讯QQC、新浪UCD、雅虎通
点击查看答案
(),各单位必须以《电气化铁路有关人员电气安全规则》《中国铁路上海局集团有限公司电气化铁路安全实施细则》和本单位岗位安全作业标准为主要内容,组织有关管理、作业人员进行安全知识培训考试。
A.每年6月
B.电气化铁路牵引供电设备送电后
C.电气化铁路开通前
D.电气化铁路开通后
点击查看答案
“伍子胥打马过乌江”历史典故中的乌江流域在利辛辖区内的乡镇是()。
A.马店孜镇
B.永兴镇
C.胡集镇
点击查看答案
任何一个逻辑电路都可以表示成若干个()之积的形式。
A、最小项
B、最大项
C、最大项或最大项
D、最小项与最大项
点击查看答案
こわい顔をしてじっと见る。
A.なでる
B.にらむ
C.どなる
D.のぞく
点击查看答案
如果此牙为死髓牙,牙冠缺损3/4,未行根管治疗,根长大,牙槽骨良好。则最佳的治疗方案是()
A.根管治疗后全冠修复
B.根管治疗后铸造桩核+全冠修复
C.根管治疗后银汞充填+全冠修复
D.根管治疗后嵌体修复
E.根管治疗后3/4冠修复
点击查看答案
新时代我国社会主要矛盾已经从“人民日益增长的物质文化需要同落后的社会生产的矛盾转化为人民
新时代我国社会主要矛盾已经从“人民日益增长的物质文化需要同落后的社会生产的矛盾转化为人民日益增长的美好生活需要和不平衡不充分的矛盾”。实施乡村振兴战略,正是满足人民追求美好生活的需要。 ()
点击查看答案
直接提供中枢神经系统活动所需能量的是()
A.氨基酸
B.葡萄糖
C.脂肪酸
D.磷脂
E.糖脂
点击查看答案
血吸虫病和钉螺的地理分布均有严格的地方性,两者分布基本一致。
点击查看答案
直接影响甲型H1N1流感传播的行为不包括()
A . A、密切接触
B . B、共用物品
C . C、咳嗽
D . D、握手
E . E、不合理膳食
点击查看答案
植物是何时登陆的?动物是何时登陆的?
点击查看答案
盆栽花卉浇水,多数要避开当头淋浇,但是,()
A.大岩桐要求当头浇水,以满足生长需要。
B.非洲紫罗兰要求当头浇水,以满足生长需要。
C.凤梨类花卉要求当头浇水,以满足生长需要。
D.竹芋类要求当头浇水,以满足生长需要。
点击查看答案
阅读下面短文,回答以下问题。 海豚是怎样发出声呐信号的这个问题长期以来一直困扰着科学家。生物学家克兰弗德和物理学家阿罗安经过共同努力,用一个新奇的计算机模拟系统得出一个比较确实的答案。阿罗安说:“以...文中“这个问题”是指:
A.海豚声呐的问题。
B.排除繁杂的信号和干扰。
C.找出海豚发声的声源。
D.将声源还原到海豚头像上。
点击查看答案
客服
TOP