二叉树的建立与遍历实验报告(c语言编写-附源代码).doc

二叉树的建立与遍历实验报告(c语言编写-附源代码).doc

ID:57314021

大小:60.50 KB

页数:8页

时间:2020-08-11

二叉树的建立与遍历实验报告(c语言编写-附源代码).doc_第1页
二叉树的建立与遍历实验报告(c语言编写-附源代码).doc_第2页
二叉树的建立与遍历实验报告(c语言编写-附源代码).doc_第3页
二叉树的建立与遍历实验报告(c语言编写-附源代码).doc_第4页
二叉树的建立与遍历实验报告(c语言编写-附源代码).doc_第5页
资源描述:

《二叉树的建立与遍历实验报告(c语言编写-附源代码).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、二叉树的建立与遍历实验报告级班年月日姓名学号_1.实验题目  建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。2.需求分析本程序用VC编写,实现建立一棵二叉树的功能,并对其进行遍历(先序、中序、后序),并且打印输出遍历结果。①输入的形式和输入值的范围:输入二叉树的先序,当其结点为空时,需要输入#。(输入的先序仅含字母和#)②输出的形式:输出二叉树的先序、中序、后序。③程序所能达到的功能:实现建立一棵二叉树的功能,并对其进行遍历(先序、中序、后序),并且打印输出遍历结果。④测试数据:输入数据:输入ABC##DE#G##F###输出

2、结果:二叉树的先序遍历为:ABCDEGF二叉树的中序遍历为:CBEGDFA二叉树的后序遍历为:CGEFDBA3.概要设计1)为了实现上述程序功能,需要定义二叉链表的抽象数据类型:typedefstructBinaryTreeNode{TElemTypedata;//二叉树结点中的数据域structBinaryTreeNode*lchild,*rchild;//二叉树结点的左孩子和右孩子指针}BinaryTreeNode,*BiTree;基本操作:A.voidCreateBinaryTree(BiTree&T)初始条件:无操作结果:建立了二叉树。B.v

3、oidPreOrder(BiTreeT)初始条件:存在一棵二叉树操作结果:先序遍历二叉树,并且输出先序遍历的结果。C.voidMidOrder(BiTreeT)初始条件:存在一棵二叉树操作结果:中序遍历二叉树,并且输出中序遍历的结果。D.voidPostOrder(BiTreeT)初始条件:存在一棵二叉树操作结果:后序遍历二叉树,并且输出后序遍历的结果。程序包含5个函数:  主函数main()  先序建立二叉树voidCreateBinaryTree(BiTree&T)先序遍历二叉树,并且输出先序遍历的结果voidPreOrder(BiTreeT);

4、中序遍历二叉树,并且输出中序遍历的结果voidMidOrder(BiTreeT);序遍历二叉树,并且输出后序遍历的结果voidPostOrder(BiTreeT);主函数main()CreateBinaryTreePreOrderMidOrderPostOrder各函数间关系如下:4.详细设计1)二叉链表的定义typedefstructBinaryTreeNode{定义一个树结点的数据域;定义一个该结点的左孩子指针和右孩子指针;}1)voidCreateBinaryTree(BiTree&T)//先序建立二叉树{输入一个字符量;if(输入字符=='#

5、')T指针置值为NULL;else{动态申请一个指向二叉树结构体的指针把输入字符赋值给新指针的数据域data;调用CreateBinaryTree(新指针的lchild成员);调用CreateBinaryTree(新指针的rchild成员);}}2)voidPreOrder(BiTreeT)//先序遍历二叉树{if(T指针不为NULL){输出T的data域;先序遍历左子树;先序遍历右子树;}}3)voidMidOrder(BiTreeT)//中序遍历二叉树{if(T指针不为NULL){中序遍历左子树;输出T的data域;中序遍历右子树;}}1)voi

6、dPostOrder(BiTreeT)//中序遍历二叉树{if(T指针不为NULL){后序遍历左子树;后序遍历右子树;输出T的data域;}}5.调试分析  在编写程序过程中,我将scanf(”%c”,&ch)中的%c写成%d,程序运行了一段时间没有结果,经过检查,发现了这个错误。编写程序不能有一点马虎,否则后续纠错工作很辛苦,编写程序的进度变慢。6.使用说明程序名为:二叉树遍历.exe,运行环境为DOS。程序执行后显示 输入字符,先序建立二叉树:此时请输入一棵二叉树的先序,并且当结点为空时,输入#输入完成后,会输出该二叉树的先序遍历、中序遍历和后序

7、遍历7.测试结果1)输入数据:输入ABC##DE#G##F###输出结果:二叉树的先序遍历为:ABCDEGF二叉树的中序遍历为:CBEGDFA二叉树的后序遍历为:CGEFDBA1)输入数据:输入AB##C##输出结果:二叉树的先序遍历为:ABC二叉树的中序遍历为:BAC二叉树的后序遍历为:BCA2)二叉树如下:先序输入这棵二叉树,程序运行结果为:程序源代码:#include#includetypedefcharTElemType;typedefstructBinaryTreeNode//二叉链表的存储结构{TEl

8、emTypedata;structBinaryTreeNode*lchild,*rchild;}Binary

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

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

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