哈夫曼编、译码器(3)

2019-01-10 14:51

数据结构课程设计报告

}

return NULL;

}

template

void HuaffmanTree::Coding(LinkList L) { qu.Clear (); int i=0;

while((L.List [i]<123&&L.List [i]>96)||L.List [i]==32) { GetCode(L.List[i],L); i++; }

}

template

void HuaffmanTree::DeCode(LinkList L) { int i=0;

while(!qu.IsEmpty ()) { HuaffmanTreeNode *current=this->GetRoot (); while(current->GetData ()=='0') { if(qu.DeQueue()==0) current=current->GetLchild();

else

current=current->GetRchild(); }

cout<GetData ();

}

}

template

void HuaffmanTree::GetCharFrenquency (LinkList L) { HuaffmanTreeNode *current=L.GetHead()->GetNext(); while(current) {

if(current->GetData()!='0') 0 1

数据结构课程设计报告

{cout<GetData()<<\ \<GetKey()<GetNext();

}

}

template

void HuaffmanTree::ShowPriorText(LinkList L) { int i=0;

while((L.List [i]<123&&L.List [i]>96)||L.List [i]==32) { cout<

}

template

void HuaffmanTree::ShowNodeBit(LinkList L) { HuaffmanTreeNode *current=L.GetHead()->GetNext(); while(current) { if(current->GetData()!='0')

{cout<GetData ()<<\ \; GetCode(current->GetData(),L); cout<

current=current->GetNext(); }

}

template

int HuaffmanTree::GetHeight(HuaffmanTreeNode *p) { if(!p) return 0; int hl,hr;

hl=GetHeight(p->GetLchild()); hr=GetHeight(p->GetRchild()); return hl>hr?++hl:++hr;

}

三.上机结果及体会 1.完成情况

1 1

数据结构课程设计报告

该程序可以统计每种字符出现的次数,每个字符的哈夫曼编码,编码后的密文以及哈夫曼树,也可以将编码后的密文进行译文。 2.程序的运行结果 输入数据

按1进行的操作

按2进行的操作

12

数据结构课程设计报告

按3进行的操作

哈夫曼树以旋转90度输出。其中数字表示权值,括号里的字符表示元素的。 按4进行的操作

13

数据结构课程设计报告

按5进行的操作

按6进行的操作

按0结束

3.程序可以改进及扩充的功能设计实现假想

改进:将哈夫曼树以正常的树的形式输出

14


哈夫曼编、译码器(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数据结构导论真题分类整理详细

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: