范文无忧网公文文书入党入团

数据结构的问题求一个构造哈夫曼树的算法

02月21日 编辑 fanwen51.com

[浅析电子数据库的法律保护问题]1994年北京阳光数据公司(以下简称阳光公司),与国内的15家商品交易所、两家证券交易所谈判,分别签定了实时信息数据使用、编辑、转播许可合同。阳光公司将这些数据重新整理编辑加...+阅读

void haffmantree(int weight[],int n,struct haffnode hafftree[],char data[])

/*建立叶结点个数为n,权值数组为weight[]的哈夫曼树*/

{int i,j,m1,m2,x1,x2;

/*哈夫曼树hafftree[]初始化,n个叶结点共有2n-1个结点*/

for(i=0;i{if(ihafftree[i].weight=weight[i]; /*叶结点*/

}

else {hafftree[i].weight=0; /*非叶结点*/

hafftree[i].data='\0';

}

hafftree[i].parent=0; /*初始化没有双亲结点*/

hafftree[i].flag=0;

hafftree[i].leftchild=-1;

hafftree[i].rightchild=-1;

}

for(i=0;i{m1=m2=MAXVALUE;

x1=x2=0;

for(j=0;j{if(hafftree[j].weight{m2=m1;

x2=x1;

m1=hafftree[j].weight;

x1=j;

}

else if(hafftree[j].weight{m2=hafftree[j].weight;

x2=j;

}

}

hafftree[x1].parent=n+i;

hafftree[x2].parent=n+i;

hafftree[x1].flag=1;

hafftree[x2].flag=1;

hafftree[n+i].weight=hafftree[x1].weight+hafftree[x2].weight;

hafftree[n+i].leftchild=x1;

hafftree[n+i].rightchild=x2;

}

}

void haffmancode(struct haffnode hafftree[],int n,struct haffcode haffcode[])

{/*由n个结点的哈夫曼树hafftree[]构成的哈夫曼编码haffcode[]*/

int i,j,child,parent;

struct haffcode newcode;

struct haffcode *cd;

cd=&newcode;

for(i=0;i{cd->start=MAXBIT-1; /*不等长编码的最后一位是n-1*/

cd->weight=hafftree[i].weight;

cd->data=hafftree[i].data; /*取得编码对应值的字符*/

child=i;

parent=hafftree[child].parent;

while(parent!=0)

{if(hafftree[parent].leftchild==child)

cd->bit[cd->start]=0; /*左孩子编码为0*/

else

cd->bit[cd->start]=1; /*右孩子编码为1*/

cd->start--;

child=parent;

parent=hafftree[child].parent;

}

for(j=cd->start+1;jhaffcode[i].bit[j]=cd->bit[j];

haffcode[i].data=cd->data;

haffcode[i].start=cd->start;

haffcode[i].weight=cd->weight;

}

}

延伸阅读:

请问一个问题关于民事行为效力问题咱们的参考书上讲解的很粗糙。限制行为能力人超出民事行为能力的范围而实施的合同行为为效力待定,这是《合同法》规定的。但是《民法通则》把限制行为能力人超出民事行为能力...

EXCEL表数据处理问题可以使用 进位函数 以下是常用的保留小数位数的函数,根据你的要求,我们选择roundup这个函数,我举例说明: =MOD(A1*100,1)=0 强制单元格输入信息为保留一位小数的数字格式。 =tru...

算法的子集和数问题回溯算法设计2008-05-29 10:15 P.M.[实验目的] 1. 掌握回溯法解题的基本思想; 2. 掌握回溯算法的设计方法; 3. 针对子集和数问题,熟练掌握回溯递归算法、迭代算法的设计与实现...

数据结构与算法的题目怎么做首先,要能够读懂代码,总结算法的思想,搞清楚该题算法是完成什么功能,然后是填空也好,写算法结果也好,就不成问题了。要想提高的快,就得多练啊。同时教材中的相关算法也要熟,好多是书...

请教一个问题:参加老人的生日应该注意哪些礼节方面的问题一) 日常交往礼节 1.尊重各国风俗习惯,遵守社会公共道德。 2.遵守时间,不要失约。参加活动要按约定时间到达。不要过早,使主人因未准备好而难堪,也不要晚到。不守时是很失礼的。...

关于示波器中 FFT算法的问题FFT=fast fourior transform. 这是一种方便于计算机计算的快速傅里叶变换 还有一种是DFT 但是因为其complexity=N^2>>FFT=NlogN 因此不被计算机算法采用 紫色的是上面方波在...

求数据库管理的制度去文库,查看完整内容>内容来自用户:心情话语 数据库管理制度第一章总则第一条为加强天津中诚资信评估有限公司(以下简称“公司”)数据库管理,保障评级数据库正常、有效运行,确保数...

距离矢量路由协议算法:谁能给我说下该算法的原理谢谢RIP协议使用距离矢量算法,网络工作时路由器之间利用此协议更新路由表项,每隔2分钟更新一次。路由表项格式:(direction,jump,next)分别表示目的网络地址,跳数(距离),下一跳路由地址当...

求计算机图形学中的直线绘制函数法 DDA算法中点法和Bresenham算法的特点是: 1,不必计算直线之斜率,因此不做除法; 2,不用浮点数,只用整数; 3,只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现. Bresenham算法速度很快,并适于用硬件...

推荐阅读
图文推荐
栏目列表