#include<stdio.h>
#include<stdlib.h>
#define bug printf("***************************\n")
#define maxn 100000 + 7
//定义哈夫曼树的结点
typedef struct LinkNode
{
int data;
struct LinkNode* lchild;
struct LinkNode* rchild;
}LinkNode;
int len;
int st_pin;
int st[maxn];//用于存储树的结点
LinkNode* h[maxn]; //指向树的结点的指针数组
void swap_1(int x, int y)
{
//交换结点
LinkNode* temp;
temp = h[x];
h[x] = h[y];
h[y] = temp;
}
//下沉操作,
void push_down(int cur)
{
if(cur*2 > len)//无子结点
return ;
//如果有子结点
int pos = cur*2;//让pos指向该结点的左子树
if(cur*2 + 1 <= len)//如果该结点有右子树
if
实现哈夫曼树及哈夫曼编码(C语言版,利用小顶堆) 超详细!
最新推荐文章于 2023-10-11 16:33:15 发布
本文详细介绍了如何使用C语言实现哈夫曼树和哈夫曼编码,通过小顶堆进行优化,提供了运行结果展示,并邀请读者对可能存在的错误进行指正。
摘要由CSDN通过智能技术生成