二叉树及其应用(实验五)

二叉树及其应用(实验五)

ID:41782615

大小:60.80 KB

页数:17页

时间:2019-09-02

二叉树及其应用(实验五)_第1页
二叉树及其应用(实验五)_第2页
二叉树及其应用(实验五)_第3页
二叉树及其应用(实验五)_第4页
二叉树及其应用(实验五)_第5页
资源描述:

《二叉树及其应用(实验五)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验五二叉树及其应用1•目的要求:(1)通过实验掌握二叉树的两种基本的存储结构,及二叉树的建立、遍历,并加以应用。(2)Huffman树建立、编码。2.实验内容:(1)按先序次序输入二义树中结点的值,建立一棵以二义链表作存储结构的二义树,然示按先序、屮序、后序顺序分别遍历这棵二叉树,并完成二叉树的相应信息的统计(如各种结点数冃、二叉树的鬲度等);(2)建立一棵二义排序树,并对其进行先序、中序、后序遍历。(3)M用队列结构实现二叉树的层次遍历。(4)设计一个完整的编码系统:针对一篇文档,统计各个字符的出现次数,并为其设计Huffman编码。注:(1

2、)~(2)必做,(3)〜(4)选做。三.实验主要流程、棊木操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)按先序次序输入二义树中结点的值,建立一棵以二义链表作存储结构的二义树,然后按先序、中序、后序顺序分别遍历这棵二叉树,并完成二叉树的相应信息的统计(如各种结点数目、二叉树的高度等);程序代码:头文件:#ifndef_H一#define_H_#dcfincOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefcharTElemType;typedefstructBiTNod

3、e{TElemTypee;structBiTNode*LChild,*RChild;}BiTNode,*BiTrcc;StatusCreate(BiTree&T);StatusPrintElemType(TElemTypee);StatusPreOrderTraver(BiTreeT,Status(*visit)(TElemTypee));StatusInOrderTraver(BiTreeT,Status(*visit)(TElemTypee));StatusPostOrderTraver(BiTreeT,Status(*visit)(TEle

4、mTypee));StatusCount(BiTreeT);StatusCountleaf(BiTreeT);StatusCounttwo(intn);StatusCountone(intn,intn(),intn2);StatusDepth(B汀reeT);#endif主函数:#include#include#includeHl.hHintmain(){BiTreeT;printf(”请按照先序输入树值:");if(!Create(T))printf(”存储空间分配失败”);printf(”先序遍历

5、该树为:”);if(!PreOrderTraver(T,PrintElemType))printf(H打印函数11J错”);printf(””);printf("中序遍历该树为:M);if(!InOrderTraver(T,PrintElemType))printf(u打印函数出错”);printf("M);printf(”后序遍历该树为:");if(!PostOrderTraver(T,PrintElemType))printf(M打印函数出错K);printf(nn);printfC'总结点数有:%d"

6、,Count(T));printf(”其中叶子结点数有:%dH,Countleaf(T));printfC'其屮一度结点数育:%d",Countone(Count(T),Countleaf(T),Counttwo(Countleaf(T))));printf("其中二度结点数有:%d",Counttwo(Countleaf(T)));printfC该二叉树的深度为:%dH,Depth(T));return0;功能函数:#include#includc#includeMl.hn〃先序建立二叉St

7、atusCreate(BiTree&T)charch;scanf("%c",&ch);if(ch==,')T二NULL;else{if(!(T=(BiTree)malloc(sizeof(BiTNode))))exit(OVERFLOW);T->e=ch;Create(T->LChild);Create(T->RChild);}returnOK:}〃输出结点中的数值StatusPrintElemType(TElemTypee){printf("%c",e);returnOK;}〃先序遍丿力StatusPrcOrdcrTravcr(BiTrccT,

8、Status(*visit)(TElcmTypcc)){if(T){if(visit(T->e)){if(PreOrderTraver(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。