霍夫曼算法完整版本(可直接在vs运行)

上传人:876****10 文档编号:141787298 上传时间:2020-08-12 格式:DOC 页数:135 大小:200.50KB
返回 下载 相关 举报
霍夫曼算法完整版本(可直接在vs运行)_第1页
第1页 / 共135页
霍夫曼算法完整版本(可直接在vs运行)_第2页
第2页 / 共135页
霍夫曼算法完整版本(可直接在vs运行)_第3页
第3页 / 共135页
霍夫曼算法完整版本(可直接在vs运行)_第4页
第4页 / 共135页
霍夫曼算法完整版本(可直接在vs运行)_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《霍夫曼算法完整版本(可直接在vs运行)》由会员分享,可在线阅读,更多相关《霍夫曼算法完整版本(可直接在vs运行)(135页珍藏版)》请在金锄头文库上搜索。

1、#include#include#include#include/系统调用#include/系统调用/#includeAllNeedFile.h#define TURE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2usingnamespace std;/变量类型typedefint SElemType;/函数类型typedefint Status;usingnamespace std;/矚慫润厲钐瘗睞枥庑赖。/聞創沟燴鐺險爱氇谴净。/残骛楼諍锩瀨濟溆塹籟。/全局变量的定义区域#define NUMBER 52/存数

2、树的数组的最大长度#define MAX_STACK 15 /堆栈的最大深度int extor=27; /在构造赫夫曼树过程中,控制结点19几点的依次后移bool flag=0; /使flag在和之间动荡,用于控制找到的最小权值结点赋给新结点的做孩子还是有孩子。酽锕极額閉镇桧猪訣锥。/flag=0的时候赋给新结点的左孩子/flag=1的时候赋给新结点的右孩子int control=0;/控制次数,使extor每运行两次函数CreateHuffmanTree()而自增彈贸摄尔霁毙攬砖卤庑。int CODEFORALL2727;/颜色空间的设置参数/HANDLE h = GetStdHandle(

3、 STD_OUTPUT_HANDLE);/控制颜色函数里面的一个参数謀荞抟箧飆鐸怼类蒋薔。/背景颜色的参数/#define BACKGROUND_REDbred/#define BACKGROUND_BLUEbblue/#define BACKGROUND_GREENbgreen/前景颜色的参数/#define FOREGROUND_REDfred/#define FOREGROUND_BLUEfblue/#define FOREGROUND_GREENfgreen/树的结点结构体定义typedefstructunsignedint weight;unsignedint parent,lchi

4、ld,rchild;HTNode;/存储编码的结构体定义typedefstruct DuLNodeint code;struct DuLNode *prior,*next;DuLNode,*DuLiskList;/存储编码的数组typedefstruct CodeArraychar ch;DuLNode *pcode;CodeArray;/堆栈的结构typedefstruct SSint *base;int *top;int stacksize;SqStack;void DATA_REPLACE();/开机动画void FLASH_SCREEN();/计算中的屏幕闪烁void InitCODE

5、FORALL();/初始化全局变量CODEFORALLvoid InitTreeNode(HTNode *treenodes);/初始化二叉树void ShowTreeNode(HTNode H);/显示树信息void CinCharArray(char ch);/用户输入需编码的字母序列void ShowCharArray(char ch);/显示用户输入的字母序列void CalculateWeight(char ch,HTNode H);/计算个字母的权值,并对树的每个结点的weight赋值厦礴恳蹒骈時盡继價骚。void InitCodeArray(CodeArray code);/初始

6、化代码存储空间,使其字母域为aj茕桢广鳓鯡选块网羈泪。void ShowCodeArray1(CodeArray code);/显示代码空间目前的值void GivePersonDataForTreeNode(HTNode H);/人为赋值一些值,用于检测其他函数的功能鹅娅尽損鹌惨歷茏鴛賴。void CreateHuffmanTree(HTNode H);/构造赫夫曼树/双链表的解决法双链表的那些函数的声明void CreateCodeArray(HTNode H,CodeArray hcode);/编码数列填充函数籟丛妈羥为贍偾蛏练淨。/每个字母的非别编码函数void CodeforAand

7、Show(CodeArray hcode);/A的编码与输出void CodeforBandShow(CodeArray hcode);/B的编码与输出void CodeforCandShow(CodeArray hcode);/C的编码与输出void CodeforDandShow(CodeArray hcode);/D的编码与输出void CodeforEandShow(CodeArray hcode);/E的编码与输出void CodeforFandShow(CodeArray hcode);/F的编码与输出void CodeforGandShow(CodeArray hcode);/G

8、的编码与输出void CodeforHandShow(CodeArray hcode);/H的编码与输出void CodeforIandShow(CodeArray hcode);/I的编码与输出void CodeforJandShow(CodeArray hcode);/J的编码与输出void ShowAllCodesOfTheArray(HTNode H,char ch,CodeArray hcode);/输出编码預頌圣鉉儐歲龈讶骅籴。/堆栈解决法堆栈的那些函数的声明void FunctionsOfStack(SqStack &S);/初步处理堆栈的总函数,用于调用其他堆栈函数渗釤呛俨匀谔

9、鱉调硯錦。void InitStack(SqStack &S);/初始化堆栈void GetTop(SqStack S,SElemType &e);/获得栈顶元素void Push1(SqStack &S,int e);/入栈void Pop(SqStack &S,int &e);/出栈void ClearStack(SqStack &S);/清空栈int StackLength(SqStack S);/求栈长void CodeWSAndShowForA(HTNode H,SqStack &SS);/堆栈为A编码铙誅卧泻噦圣骋贶頂廡。void CodeWSAndShowForB(HTNode

10、H,SqStack &SS);/堆栈为B编码擁締凤袜备訊顎轮烂蔷。void CodeWSAndShowForC(HTNode H,SqStack &SS);/堆栈为C编码贓熱俣阃歲匱阊邺镓騷。void CodeWSAndShowForD(HTNode H,SqStack &SS);/堆栈为D编码坛摶乡囂忏蒌鍥铃氈淚。void CodeWSAndShowForE(HTNode H,SqStack &SS);/堆栈为E编码蜡變黲癟報伥铉锚鈰赘。void CodeWSAndShowForF(HTNode H,SqStack &SS);/堆栈为F编码買鲷鴯譖昙膚遙闫撷凄。void CodeWSAndS

11、howForG(HTNode H,SqStack &SS);/堆栈为G编码綾镝鯛駕櫬鹕踪韦辚糴。void CodeWSAndShowForH(HTNode H,SqStack &SS);/堆栈为H编码驅踬髏彦浃绥譎饴憂锦。void CodeWSAndShowForI(HTNode H,SqStack &SS);/堆栈为I编码猫虿驢绘燈鮒诛髅貺庑。void CodeWSAndShowForJ(HTNode H,SqStack &SS);/堆栈为J编码锹籁饗迳琐筆襖鸥娅薔。void CodeWSAndShowForK(HTNode H,SqStack &SS);/堆栈为K编码構氽頑黉碩饨荠龈话骛。

12、void CodeWSAndShowForL(HTNode H,SqStack &SS);/堆栈为L编码輒峄陽檉簖疖網儂號泶。void CodeWSAndShowForM(HTNode H,SqStack &SS);/堆栈为M编码尧侧閆繭絳闕绚勵蜆贅。void CodeWSAndShowForN(HTNode H,SqStack &SS);/堆栈为N编码识饒鎂錕缢灩筧嚌俨淒。void CodeWSAndShowForO(HTNode H,SqStack &SS);/堆栈为O编码凍鈹鋨劳臘锴痫婦胫籴。void CodeWSAndShowForP(HTNode H,SqStack &SS);/堆栈

13、为P编码恥諤銪灭萦欢煬鞏鹜錦。void CodeWSAndShowForQ(HTNode H,SqStack &SS);/堆栈为Q编码鯊腎鑰诎褳鉀沩懼統庫。void CodeWSAndShowForR(HTNode H,SqStack &SS);/堆栈为R编码硕癘鄴颃诌攆檸攜驤蔹。void CodeWSAndShowForS(HTNode H,SqStack &SS);/堆栈为S编码阌擻輳嬪諫迁择楨秘騖。void CodeWSAndShowForT(HTNode H,SqStack &SS);/堆栈为T编码氬嚕躑竄贸恳彈瀘颔澩。void CodeWSAndShowForU(HTNode H,SqStack &SS);/堆栈为U编码釷鹆資贏車贖孙滅獅赘。void CodeWSAndShowForV(HTNode H,SqStack &SS);/堆栈为V编码怂阐譜鯪迳導嘯畫長凉。void CodeWSAndShowForW(HTNode H,SqStack &SS);/堆栈为W编码谚辞調担鈧谄动禪泻類。void CodeWSAndShowForX(HTNode H,SqStack &SS);/堆栈为X编码嘰觐詿缧铴嗫偽純铪锩。void CodeWSAndShowForY(HTNode H,SqStack &SS);/堆栈为Y编码熒绐譏钲鏌觶鷹緇機库。void CodeW

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号