ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:129.09KB ,
资源ID:1140944      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1140944.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中南民族大学管理学院学生实验报告.doc)为本站会员(文****钱)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

中南民族大学管理学院学生实验报告.doc

1、实验目的(1)学会用先序创建一棵二叉树。(2)学会采用递归算法对二叉树进行先序、中序、后序遍历。(3)学会打印输出二叉树的遍历结果。实验内容【问题描述】建立一棵二叉树,并 对其进行遍历(先序、中序、后序),打印输出遍历结果。【基本要求】从键盘接受输入(先序),以二叉 链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进 行遍历(先序、中序、后序),将遍历结果打印输出。【测试数据】ABCDEGF(其中 表示空格字符)则输出结果为 先序:ABCDEGF中序:CBEGDFA后序:CGBFDBA【选作内容】采用非递归算法实现二叉树遍历。实验步骤(一)需求分析1、在这个过程中,接受遍历的二

2、叉树是从键盘接受输入(先序),以二叉链表作为存储结构,建立的二叉树。因此,首先要 创建一棵二叉树,而这棵二叉树是先序二叉树。本演示程序中,集合的元素设定为大写字母 ABCDEFG,输出的先序,中序,后序遍 历分别为 ABCDEGF,CBEGDFA,CGBFDBA。二叉 树可以表示为:中南民族大学管理学院学生实验报告ABDGFEC接受的输入数据在进行递归的先序,中序,后序遍历后,分 别将结果打印出来。2、在程序运行的过程中可以看到,以计算机提示用户执行的方式进行下去,即在计算机终端上提示“输入二叉树的先序序列”后,由用户在键盘上输入 ABC#DE#G#F#,之后相应的选择遍历及遍历结果显示出来。

3、3、程序执行的命令包括:首先是二叉树的先序序列被创建输入,其次是对输入进去的先序序列有次序的进行先序,中序,后序遍历。最后是打印出二叉树的遍历结果。中南民族大学管理学院学生实验报告4、测试数据(1)在键盘上输入的先序序列 ABC#DE#G#F#(2)先序遍历结果 ABCDEGF(3)中序遍历结果 CBEGDFA(4)后序遍历结果 CGBFDBA(二)概要设计1、为实现上述程序功能,应以二叉树定义的相关操作和二叉树递归遍历的相关操作为依据。有关以二叉 链表作为存 储结构,建立二叉树的操作为:typedef BTNode *BTree; /定义二叉树 的指针BTree CreatBTree(voi

4、d)BTree T;char ch;if(ch=getchar()=#)return(NULL); /读入#,返回空指针elseT=(BTNode *)malloc(sizeof(BTNode); /分配空 间,生成结点T-data=ch;T-lchild=CreatBTree(); /构造左子 树T-rchild=CreatBTree(); /构造右子树return(T);中南民族大学管理学院学生实验报告2、而有关先序、中序、后序遍历的递归操作为:void Preorder(BTree T) /先序遍历if(T)printf(“%c“,T-data); /访问结点Preorder(T-lch

5、ild); /先序遍历左子树Preorder(T-rchild); /先序遍历右子树void Inorder(BTree T) /中序遍历if(T)Inorder(T-lchild); /中序遍历左子 树printf(“%c“,T-data); /访问结点Inorder(T-rchild); /中序遍历右字 树void Postorder(BTree T) /后序遍历if(T)中南民族大学管理学院学生实验报告Postorder(T-lchild); /后序遍历左子树Postorder(T-rchild); /后序遍历右子树printf(“%c“,T-data); /访问结点3、本程序包含的模块

6、(1)结点单元模块(2)构建先序二叉树模块(3)二叉树遍历模块(4)主程序模块各模块之间的调用关系如下:(三)详细设计1、元素类型,结点类型和指针类型主程序模块二叉树遍历模块结点单元模块构建先序二叉树模块中南民族大学管理学院学生实验报告typedef struct nodechar data; /二叉树的元素类型struct node *lchild;struct node *rchild;BTNode; /自定义二叉树的 结类型typedef BTNode *BTree; /定义二叉树的指 针2、定义类型之后,要以二叉链表作为存储结构,建立二叉树(以先序来建立)。BTree CreatBTr

7、ee(void)BTree T;char ch; /定义输入的数据类型if(ch=getchar()=#) /支持在键盘上输入先序二叉树return(NULL); /读入#,返回空指针对于二叉树的先序输入,在输入中要注意的是对于空指针的把握,由于是先序输入,在 输入时要在确定的位置输 入 “#”号,否则先序二叉树将不完整。elseT=(BTNode *)malloc(sizeof(BTNode); /分配空间,生成结点T-data=ch;T-lchild=CreatBTree(); /构造左子 树中南民族大学管理学院学生实验报告T-rchild=CreatBTree(); /构造右子树retu

8、rn(T);当输入的叶子结点完整之后,要 return(T),否则输入将一直持续下去不能跳出来。在程序的设计过程中,在适当的位置插入#对于二叉树的遍历有着十分重要的作用,因此要明白二叉树的先序创建过程如何运行。3、对于二叉树进行先序、中序、后序的遍 历。void Preorder(BTree T) /先序遍历if(T)printf(“%c“,T-data); /访问结点Preorder(T-lchild); /先序遍历左子树Preorder(T-rchild); /先序遍历右子树这个是先序遍历,先序遍历与中序遍历,后序遍 历相似,都是以不同顺序访问子树及结点。先序遍历先访问根节点,先序遍历左子

9、树,再先序遍历右子树。而中序遍历是中序遍历左子树, 访问根节点,中序遍历右子树。后序遍历是后序遍历左子树,后序遍历右子中南民族大学管理学院学生实验报告树,后序遍历根节点。三个遍历虽说顺序不一致,但是在程序的编写上有很多可以相通的地方。以下分别是中序、后序的程序:void Inorder(BTree T) /中序遍历if(T)Inorder(T-lchild);/中序遍历左子树printf(“%c“,T-data); /访问结点Inorder(T-rchild);/中序遍历右字树void Postorder(BTree T) /后序遍历if(T)Postorder(T-lchild); /后序遍

10、历左子树Postorder(T-rchild); /后序遍历右子树printf(“%c“,T-data); /访问结点4、主程序模块的链接。在这个模块中,不仅要实现 二叉树先序序中南民族大学管理学院学生实验报告列从键盘的输入,还要实现选择三个遍历的输出。主函数的作用旨在使每个程序模块能够链接在一起,调用各个函数以实现最终的目的。void main()BTree root; /数的根结点int i; /可供选择的整型变量 i printf(“n“);printf(“请输 入二叉树 的先序序列,用 #代表虚结点:“);root=CreatBTree(); /返回根结点do /循环语句printf(

11、“*SELECT*n“);printf(“t1:先序遍 历n“);printf(“t2:中序遍 历n“);printf(“t3:后序遍 历n“);printf(“t0:Exitn“);printf(“t*n“);scanf(“%d“,/输入菜单序号switch(i)case 1:printf(“先序遍历结果为:“);中南民族大学管理学院学生实验报告Preorder(root);break;case 2:printf(“中序遍历结果为:“);Inorder(root);break;case 3:printf(“后序遍历结果为:“);Postorder(root);break;在这三个选择中,充分调用了先序、中序、后序遍 历 函数,选择1、2、3 数字实现对三个遍历的输出打印。default:exit(1);printf(“n“);while(i!=0);5、函数的调用关系图反映了演示程序的层次结构:mainCreatBTree InorderPreorder Postorder(四)调试分析1、实验涉及的部分包括用二叉链表创建先序二叉树,对二叉树进

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。