资源描述:
《数据结构资料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