哈夫曼编码

构造哈夫曼树

左0右1

Status InitStack(SqStack *s) {
    s.base = (SElemtype*)mallco(MAXSIZE*sizeof(SElemtype));
    s.top = s.base;
    return OK;
}
void CreatHuffmanCode(HuffmanTree HT,HuffmanCode *HC,int n){
    //从叶子到根逆向求每个字符的哈夫曼编码,并存储在编码表HC中;
    HC=new char*[n+1];
    cd=new char[n];//分配动态零时空间;
    cd[n-1]='\0';
    for(i=1;i<=n;i++){
        start=n-1;
        f=HC[i].parent;
        while(f!=0){//当结点不为根
            start--;
            if(i==HC[f].lchild) cd[start]='0';
            else cd[start]='1';
        }
        HC[i]=new char[n-start];//为第i个字符编码分配空间;
        strcpy(HC[i],*cd[start]);
    }
    delete cd;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值