- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告
甘肃政法学院本科生实验报告(三)姓名: 学院: 专业: 班级: 实验课程名称: 数据结构实验日期:2013年 05 月 24 日指导教师及职称:实验成绩:开课时间:2012~2013 学年 第二学期实验题目数据结构实验小组合作姓名班级学 号一、实验目的7.1.实现二叉树的各种基本运算的算法7.2.实现二叉树的各种遍历算法7.3.求二叉树中从根节点到叶子节点的路径7.4.由遍历序列构造二叉树7.5.实现中序线索化二叉树7.6.构造哈夫曼树7.7.用二叉树来表示代数表达式二.实验环境计算机、Visual C++三、实验内容与步骤7.1. 编写一个程序algo7-1.cpp ,实现二叉树的各种运算,并在此基础上设计一个程序exp7-1.cpp完成如下功能(b为如图7.1所示的一棵二叉树):1.输出二叉树b;2.输出H节点的左、右孩子节点值;3.输出二叉树b的深度;4.输出二叉树b的宽度;5.输出二叉树b的节点个数;6.输出二叉树b的叶子节点个数;7.释放二叉树b;主程序如下:#include stdio.htypedef char ElemType;typedef struct node{ElemType data; //数据元素struct node *lchild; //指向左孩子struct node *rchild; //指向右孩子}BTNode;extern void CreateBTNode(BTNode *b,char *str);extern BTNode *FindNode(BTNode *b,ElemType x);extern BTNode *LchildNode(BTNode *p);extern BTNode *RchildNode(BTNode *p);extern int BTNodeDepth(BTNode *b);extern void DispBTNode(BTNode *b);extern int BTWidth(BTNode *b);extern int Nodes(BTNode *b);extern int LeafNodes(BTNode *b);extern void DestroyBTNode(BTNode *b);void main(){BTNode *b,*p,*lp,*rp;;CreateBTNode(b,A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I))));printf(二叉树的基本运算如下:\n);printf((1)输出二叉树:);DispBTNode(b);printf(\n);printf((2)H节点:);p=FindNode(b,H);if (p!=NULL){lp=LchildNode(p);if (lp!=NULL) printf(左孩子为%c ,lp-data);elseprintf(无左孩子);rp=RchildNode(p);if (rp!=NULL)printf(右孩子为%c,rp-data);elseprintf(无右孩子);}printf(\n);printf((3)二叉树b的深度:%d\n,BTNodeDepth(b));printf((4)二叉树b的宽度:%d\n,BTWidth(b));printf((5)二叉树b的节点个数:%d\n,Nodes(b));printf((6)二叉树b的叶子节点个数:%d\n,LeafNodes(b));printf((7)释放二叉树b\n);DestroyBTNode(b);}运行结果如下:7.2. 设计一个程序exp7-2.cpp,实现二叉树的先序遍历、中序遍历和后序遍历的各种递归和非递归算法,以及层次遍历的算法。并对图7.1所示的二叉树b给出求解结果。主程序如下:#include stdio.h#include malloc.h#define MaxSize 100typedef char ElemType;typedef struct node{ElemType data;//数据元素struct node *lchild;//指向左孩子struct node *rchild;//指向右孩子}BTNode;extern void CreateBTNode(BTNode *b,char *str);extern void DispBTNode(BTNode *b);extern void DestroyBTNode(BTNode *b);void PreOrder(BTNode *b)//先序遍历的递归算法{if (b!=NULL){printf(%c ,b-data);//访问根节点PreOrder(b-lchild);//递归访问左子树PreOrder(b-rch
您可能关注的文档
- 数学授课计划表(12-13上)2.doc
- 数学必修一1.1.3-2集合运算课件.ppt
- 数学模型的建立过程.doc
- 数字逻辑电路 2逻辑函数及其简化.ppt
- 数学:1.1.3《集合的基本运算(全集与补集)》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算(第2课时)》课件(新人教A版必修1).ppt
- 数学:1.1.3 集合的基本运算 第1课时课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算(二)》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算》测试(新人教A版必修1).doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)