資源簡介
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* HuffmanCode;/*動(dòng)態(tài)分配數(shù)組,存儲(chǔ)哈夫曼編碼*/
typedef struct
{
unsigned int weight ; /* 用來存放各個(gè)結(jié)點(diǎn)的權(quán)值*/
unsigned int parent, LChild,RChild ; /*指向雙親、孩子結(jié)點(diǎn)的指針*/
}HTNode, * HuffmanTree; /*動(dòng)態(tài)分配數(shù)組,存儲(chǔ)哈夫曼樹*/
代碼片段和文件信息
#include?
#include?
#include?
typedef?char*?HuffmanCode;/*動(dòng)態(tài)分配數(shù)組,存儲(chǔ)哈夫曼編碼*/
typedef?struct?
{
unsigned?int?weight?;?/*?用來存放各個(gè)結(jié)點(diǎn)的權(quán)值*/
unsigned?int?parent?LChildRChild?;?/*指向雙親、孩子結(jié)點(diǎn)的指針*/
}HTNode?*?HuffmanTree;???/*動(dòng)態(tài)分配數(shù)組,存儲(chǔ)哈夫曼樹*/
void?select(HuffmanTree?*htint?n?int?*s1?int?*s2)
{
int?i;
int?min;
for(i=1;?i<=n;?i++)
{
if((*ht)[i].parent?==?0)
{
min?=?i;
i?=?n+1;
}
}
for(i=1;?i<=n;?i++)
{
if((*ht)[i].parent?==?0)
{
if((*ht)[i].weight?(*ht)[min].weight)
min?=?i;
}
}
*s1?=?min;
for(i=1;?i<=n;?i++)
{
if((*ht)[i].parent?==?0?&&?i!=(*s1))
{
min?=?i;
i?=?n+1;
}
}
for(i=1;?i<=n;?i++)
{
if((*ht)[i].parent?==?0?&&?i!=(*s1))
{
if((*ht)[i].weight?(*ht)[min].we
評(píng)論
共有 條評(píng)論