目录
说明
哈夫曼树的这个实验我是采用常用的左‘0’右‘1’来实现的,输入是用文本输入的,大家在用之前目录下要记得创建“HT.txt”文件o,下面的测试用例也是同样方法哒,不会使用FILE进行读取文件的小伙伴,可以先简单阅览:测试用例之FILE使用
代码
私聊我获取完整代码噢,谢谢~~🍜🍜
下面展示的是部分代码~
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 50
#define MAXSIZE 400
#define OK 1;
#define OVERFLOW -2;
#define Status int
typedef struct HTNode {//在这里主要采用的是数组的形式
int weight;//权值
int parent;//双亲的下标
int leftChild;
int rightChild;
}HTNode;
//HaffNode [MAXSIZE];
typedef HTNode* HaffTree;
typedef char* HCNode;
typedef HCNode* HaffCode;
void InitTree(HaffTree* HT);
Status CreateTree(FILE* fp, HaffTree* HT);
Status Select_HT(HaffTree HT, int end, int* order_1, int* order_2);
//在哈夫曼树的结点[1,.....,n]依次去选出权值最小并且还未
//入树的结点的序号
Status HaffCodeing_HT_1(HaffTree HT, HaffCode* HC);//逆序的计算
//Status HaffCodeing_HT_2(HaffTree HT, HaffCode* HC);
void ShowHaffTree(HaffTree HT);//展示哈夫曼树
void ShowHaffCode(HaffTree HT, HaffCode HC);
测试用例
测试用例一:
测试用例二:
私聊我获取完整代码噢,谢谢~~🍜🍜