数据结构资料5

数据结构资料5

ID:35504828

大小:57.55 KB

页数:10页

时间:2019-03-25

数据结构资料5_第1页
数据结构资料5_第2页
数据结构资料5_第3页
数据结构资料5_第4页
数据结构资料5_第5页
资源描述:

《数据结构资料5》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、哈夫曼算法程序太大,一个贴放不下,下面两个贴均为哈夫曼编码程序.//2OO5/4/28//AllCopyrightAreReservedBycobby〃哈夫曼编码#include#include#include#defineNULL0typedefstructhuff_code_node〃心储编码的链表{charch;〃编码对应的字符charcode[100];〃字符对应的哈夫曼码structhuff_codc_nodc*ncxt;}hnode,*huff;typedefstructtree_Node//-二义树结点{

2、charch;〃字符内容intamount;〃字符在字符串中出现的次数structtree_Node*left,*right;〃指■向左子树与右子树)tnode,*bt;typedefstructlist_node〃链农结点(charch;〃存储字符串中的字符intamount;〃字符在字符串中出现的次数tnode*son;〃链表结点带冇二义子树的根结点指针structlist_node*next;〃指向链农中卜•个结点}Nodc,*L;typedefstructstack_nodc{charch;〃存储字符intamount;〃出现次数btson;〃指向二义树的某结点s

3、tructstack_nodc*ncxt;(snode,*stack;chart[2OO],*str,*c;〃用于存储和处理输入的字符串btroot=NULL;〃哈決曼树Ll,p,q,new_node;〃链衣结点huffhlist;〃计算得到的编码表intchar_num;〃输入的不同字符数量intchar_amount;〃输入的所冇字符数嚴intcode_sum;〃哈夫曼编码总长voidinitial()〃初始化操作{1=(Nodc*)malloc(sizcof(Node));〃建立空链表l->ch=',;l->amount=0;l->son=NULL;l->nex

4、t=NULL;str=t;〃将字符指针指向字符出的第一个位置〃键盘输入字符串printfC*输入字符串进行哈夫曼编码:”);scanf("%s",str);getch

5、否已经在链表中while(p->next!=NULL)〃若链表非空{p=p->next;if(p->ch==*c)〃若当前字符已经在链表中{exist=l;p->amount++;〃字符出现次数加1break;}}if(exisi==O)〃若当前字符不存在于链表中,则分配-个结点入表new_node=(Node*)malloc(sizeof(Node));new_node->ch=*c;new_node->amount=l;new_node->next=NULL;new_node->son=NULL;p->ncxt二ncw_nodc;p=new_node;)C++;〃读下

6、一个字符}printF(”统计结果:”);P=hn=0;m=0;while(p->next!=NULL){n++;p=p->next;m+=p・>amount;printf("%c%d,p->ch5p->amount);)char_num=n;char_amount=m;printf("•共有%<1种字符输入,字符总数%d'char_num,char_amount);}intlist_element_amount()//计算链表中结点的数量(不包括头结点)ILtemp;〃定义临时指针intn=0;〃结点数量temp=l;while(temp->next!=

7、NULL)〃后面还有结点{n++;temp=temp->next;}returnn;)btcreate()〃建立绘优二叉树{//=======================================〃这些变量川于寻找最小结点Lminl_pos,min2_pos,t,min_pri;btminl_son,min2_son;intminl,min2;cha『minl_c,min2_c;//===================================//===============================

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。