- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实现二叉树中所有节点左右子树的交换--第1页
数据结构课程设计
实验报告
题目名称:实现二叉树中所有节点左右子树的交换
学院:信息科学与工程学院
专业班级:计算机科学与技术1003班
姓名:叶成功
学号:
指导教师:陈国良教授李立三教授
日期:2012年7月3日
目录
二、基本要求
三、数据结构的设计
1、结点的数据结构
2、基本操作
四、软件模块结构图
五、程序设计思想
1、程序设计基本思想
2、程序设计基本思想
六、程序流程图
1、创建函数
2、前序遍历函数
3、中序遍历函数
4、后序遍历函数
5、层序遍历函数
实现二叉树中所有节点左右子树的交换--第1页
实现二叉树中所有节点左右子树的交换--第2页
6、左右子树交换函数
7、二叉树打印函数
8、遍历调用函数
9、菜单函数
10、主函数
七、源程序代码
八、调试分析
九、数据测试
1、主菜单界面
2、建立一棵有二十个结点的完全二叉树
3、打印二叉树
4、遍历二叉树
5、二叉树左右子树交换
6、交换后打印二叉树
7、交换后二叉树的遍历
8、退出程序
十、用户使用手册
十一、心得体会
一、问题描述
二叉树是一种常见的特殊的树型结构,在计算机领域有着极为广泛的应用。在二叉树的一些应
用中,常常要求在树中查找具有某些特征的结点或者对树中全部结点逐一进行某种处理,这就提出
了遍历二叉树。根据遍历的方向的不同,有前序遍历、中序遍历、后序遍历以及层序遍历。在本次
课程设计中,要求学生通过编写程序完成对二叉树的一些操作,比如可以构造二叉树、打印二叉树、
遍历二叉树以及对左右子树进行交换等等。
二、基本要求
要求:。构造一颗20个节点的完全二叉树或者20个节点以上的满二叉树。
实现如下步骤:
(1)实现二叉树的构造过程,并打印出二叉树
(2)对该二叉树分别用层序、前序、中序和后序四种不同的方法进行遍历;
(3)将该二叉树的所有左右子树进行交换,得到新的二叉树,并打印出该二叉树;
实现二叉树中所有节点左右子树的交换--第2页
实现二叉树中所有节点左右子树的交换--第3页
(4)对新获得的二叉树分别用层序、前序、中序和后序四种不同的方法进行遍历。
三、数据结构的设计
由数据结构中二叉树的定义可知,二叉树的结点由一个数据元素和分别指向其左、右子树
的两个分支构成,所以在本程序二叉树的构造是采用二叉链表的链式存储结构,链表
中的结点应包含三个域:数据域和左、右孩子的指针域。这种存储结构可以方便二叉
树的建立以及遍历。
1、结点的数据结构
structnode
{
chardata;
structnode*lchild,*rchild;
}
2、基本操作
voidCreate(BiTNode**p)
初始条件:按照结点的结构体构造二叉树;
操作结果:构造一棵二叉树。
voidPreOrderTraverse(BiTreeT)
初始条件:二叉树T存在;
操作结果:按照前序遍历方法遍历二叉树。
voidInOrderTraverse(BiTreeT)
初始条件:二叉树T存在;
操作结果:按照中序遍历方法遍历二叉树。
voidPostOrderTrave
文档评论(0)