//小顶堆
typedef struct{
HTree a[MAXSIZE];
int size;
}S;
int prarent(int i){
return i/2;
}
int right(int i){
return 2*i+1;
}
int left(int i){
return 2*i;
}
//插入元素
void insert(S* s,HTree n){
s->size++;
int i = s->size;
while(i>1&&(s->a[prarent(i)]->c).freq>n->c.freq){
s->a[i] = s->a[prarent(i)];
i = prarent(i);
}
s->a[i] = n;
}
//维护堆
void Min_heap(S* s,int i){
int l = left(i);
int r = right(i);
int min = i;
if(l<=s->size&&(s->a[i]->c).freq>(s->a[l]->c).freq){
min = l;
}else{
min = i;
哈夫曼树C语言实现
最新推荐文章于 2024-05-30 09:00:00 发布