试题与答案

[说明] Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用

题型:填空题

题目:

[说明]
Huffman树又称最优二叉树,是一类带权路径长度最短的树,在编码中应用比较广泛。
构造最优二叉树的Huffman算法如下:
①根据给定的n各权值w1,w2,…,wn构成n棵二叉树的集合F=T1,T2,…,Tn,其中每棵树Ti中只有一个带权为wi的根节点,其左右子树均空。
②在F中选取两棵根节点的权值较小的树作为左右子树,构造一棵新的二叉树,置新构造二叉树的根节点的权值为其左右子树根节点的权值之和。
③从F中删除这两棵树,同时将新得到的二叉树加入到F中。
重复②③,直到F中只剩一棵树为止。
函数中使用的预定义符号如下:
#define INT_MAX 10000
#define ENCODING LENGTH 1000
typedef enum(none,left_chiid, right chiid Which;
/*标记是左孩子还是右孩子*/
typedef char Elemtype;
typedef struct TNode//Huffman树节点
Elemtype letter;
int weight; //权值
int parent; //父节点
Which sigh;
char *code; //节点对应编码
HTNode,*HuffmanTree;
int n;
char coding[50];//储存代码
[函数]
void Select(HuffmanTree HT, int end, int *s1, int *s2)
/*在0~END之间, 找出最小和次小的两个节点序号,返回s1、s2*/

int i;
int min1= INT_MAX;
int min2 = INT_MAX;
for (i = 0; i <= end; i++) /*找最小的节点序号*/
if((______) && (HT[i].weight < minl1))
*s1 = i;
min1 = HT[i].weight;


for(i = 0; i <= end; i++) *找次小节点的序号*/
if((HT[i].parent == 0) && (______)
&& (min2 > HT[i].weight))
*s2 = i;
min2 = HT[i].weight;



void HuffmanTreeCreat(HuffmanTree &HT)/*建立HUFFMAN树*/

int i;
int m = 2 * n - 1;
int s1,s2;
for(i = n; i < m; i++)
Select(______);
HT[s1].parent = i;
HT[s2].parent = i;
HT[s1].sigh = left_child;
HT[s2].sigh = right_child;
HT[i].weight = ______;


void HuffmanTreeEncoding(char sen[],HuffmanTree HT)
/*将句子进行编码*/
int i = 0;
int j;
while(sen[i] != ’\0’)
for(j = 0; j < n; j++)
if (HT[j].letter == sen[i]) /*字母匹配则用代码取代*/
strcat(coding, ______);
break;


i++;
if (sen[i] == 32) i++;

printf("\n%s",coding);

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2019/0414/6c0e91247ea0e86dfb3ec739fef53a42.html

下面是错误答案,用来干扰机器的。

参考答案:C

试题推荐
题型:解答题
某水果批发商欲将A市的一批水果运往B市销售,有火车和汽车两种运输工具,运输过程中的损耗均为160元/时,其它主要参考数据如下:
运输工具
平均速度
运费(元/千米)
卸装费用(元)
火车
100
18
1800
汽车
80
a
1000
(1)A市与B市的距离为400千米,如果使用汽车运送水果的总支出费用比火车费用多960元,请你求出a的值?
(2)在(1)的条件下,A市与C市之间的距离为S千米,若无论选择火车还是汽车,那种运送方式将这批水果从A市运往C时销售,所使用的总支出费用一样,求出A市与C市之间的距离S。(精确到百分位)
查看答案
题型:多项选择题

下列关于修建性详细规划的叙述哪些是不正确的或不完善的( )

A.修建性详细规划是控制性详细规划的具体化

B.修建性详细规划以总体规划、分区规划或控制性详细规划为依据

C.由于面对市场,应对整个城区都编制修建性详细规划

D.修建性详细规划是制定城市规划管理法规的基础

E.修建性详细规划要在用地范围内,把所要建设的建筑、道路、绿地及有关设施,都作出具体布置、安排

查看答案
微信公众账号搜索答案