- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数据结构课程设计
实验报告
题目名称:实现二叉树中所有节点左右子树的交换
学院:信息科学与工程学院
专业班级:计算机科学与技术1003班
姓名:叶成功
学号:
指导教师:陈国良教授李立三教授
日期:2012年7月3日
目录
菜单函数打印二叉树
菜单函数
打印二叉树
遍历函数
遍历函数
层序遍历前序遍历
层序遍历
前序遍历
后序遍历中序遍历
后序遍历
中序遍历
程序设计思想
1、程序设计基本思想
(1)本实验要求编写一个程序实现对二叉树的各种基本操作,并以此为目的设计一个程序,完成如下功能:
1、输入二叉树的先序序列字符,建立二叉链表。注意:输入时,必须加入虚结点以示空指针的位置;假设虚结点输入时用空格字符表示。
2、打印二叉树。
3、按先序、中序、后序和层序三种不同方法遍历二叉树。
4、交换二叉树的所有左右子树。
5、打印二叉树,并且分别按照先序、中序、后序和层序三种不同方法遍历二叉树。
6、在设计一个简单的菜单,分别调试上述算法。
7、编写主程序完成各功能的调用和实现。
(2)测试数据:
1、按照先序序列依次输入字符。
2、打印二叉树并且按先序、中序和后序遍历二叉树并输出遍历结果。
3、输出交换二叉树的左右子树并且打印二叉树并且按先序、中序和后
序遍历二叉树并输出遍历结果。
2、程序设计基本思想
本程序含有7个函数;
=1\*GB3①主函数main()
=2\*GB3②前序遍历二叉树PreOrderTraverse(T,PrintChar)
=3\*GB3③中序遍历二叉树Inorder(T)
=4\*GB3④后续遍历二叉树Postorder(T)
=5\*GB3⑤层序遍历二叉树LevelOrderTraverse(T)
=6\*GB3⑥打印二叉树Paint(T)
=7\*GB3⑦交换二叉树所有左右子树SwapChild(T)
六、程序流程图
1、创建函数
开始
开始
输入结点
输入结点
输入为*
输入为*
YN
空结点新结点
空结点
新结点
二叉树构成
二叉树构成
结束
结束
voidCreate(BiTNode**p)
{
chare;
e=getchar();
if(e==*)
(*p)=NULL;
else
{
if(!((*p)=(BiTree)malloc(sizeof(BiTNode))))
{
printf(分配失败\n);
exit(0);
}
(*p)-data=e;
Create(((*p)-lchild));
Create(((*p)-rchild));
}
}
2、前序遍历函数
开始
开始
结点BTNode
结点BTNode
是否为空
是否为空
Y
N
输出根节点
输出根节点
前序遍历左子树
前序遍历左子树
前序遍历右子树
前序遍历右子树
遍历完成
遍历完成
结束
结束
voidPreOrderTraverse(BiTreeT)
{
if(T)
{
printf(%c,T-data);
PreOrderTraverse(T-lchild);
PreOrderTraverse(T-rchild);
}
}
3、中序遍历函数
开始
开始
结点BTNode
结点BTNode
是
您可能关注的文档
最近下载
- XX附属中学集团化办学三年发展规划 .pdf
- ESICM 2023年ARDS的指南、定义、表型和呼吸支持策略.docx
- 小学数学六年级下册期末测试卷附答案.docx
- 部编版语文四年级上册第3单元习作《写观察日记》优质课件.pptx VIP
- 新北师大版九年级全一册初中物理全册教案(教学设计).doc
- WI-EA-7-W19001治具验收规范A2.doc
- TJSJCXH 4-2023 先张法预应力超高强混凝土管桩.docx VIP
- 人教版数学四年级下册期末测试卷附完整答案(易错题).docx
- 2024中国兵器工业集团有限公司总部招聘(29人)备考试题及答案解析.docx VIP
- 科尔摩根控制器操作手册.pdf
文档评论(0)