- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华南农业大学信息学院数据结构--课程设计报告
华南农业大学信息学院
设计性、综合性实验
起止日期:学院 信息学院 专业班级 学号 姓名 实
验
题
目
实现二叉排序树的各种算法
√设计性 □综合性
自
我
评
价
项 目 算法设计 独立完成情况 算法熟练程度 测试通过 成功 失败 独立 帮助 掌握 了解 不懂 创建一棵空的二叉排序树 √ √ √ √ 插入新结点 √ √ √ √ 前序、中序、后序遍历二叉树 √ √ √ √ 中序遍历的非递归算法 √ √ √ √ 层次遍历二叉树 √ √ √ √ 在二叉树中查找给定关键字 √ √ √ √ 交换各结点的左右子树(选做) √ √ √ √ 求二叉树的深度(选做) √ √ √ √ 叶子结点数(选做) √ √ √ √ 输出树型结构(选做)
成绩
A---------完成实验要求的全部功能并运行通过,算法有一定的新意,程序代码符合书写规范,实验报告叙述清晰完整,有详尽的分析和总结。
B---------完成实验要求的全部功能,程序代码符合书写规范,实验报告叙述 清晰完整。
C---------完成实验要求的大部分功能,实验报告良好。
D---------未按时完成实验,或者抄袭。
教师签名
实验四上机实习报告
专业班级:学号 姓名: 完成日期:问题的描述:
用函数实现如下二叉排序树算法:
(1) 插入新结点
(2) 前序、中序、后序遍历二叉树
(3) 中序遍历的非递归算法
(4) 层次遍历二叉树
(5) 在二叉树中查找给定关键字(函数返回值为成功1,失败0)
Input
第一行:准备建树的结点个数n
第二行:输入n个整数,用空格分隔
第三行:输入待查找的关键字
第四行:输入待查找的关键字
第五行:输入待插入的关键字
Output
第一行:二叉树的先序遍历序列
第二行:二叉树的中序遍历序列
第三行:二叉树的后序遍历序列
第四行:查找结果
第五行:查找结果
第六行~第八行:插入新结点后的二叉树的先、中、序遍历序列
第九行:插入新结点后的二叉树的中序遍历序列(非递归算法)
第十行:插入新结点后的二叉树的层次遍历序列
数据结构的设计:
为了方便移动使用链表来存储二叉树,因此设计如下数据类型表示二叉树:
typedef struct BiTNode //生成树的结构体
{
ElemType key;
struct BiTNode *left,*right; //左右孩子指针
}BiTNode,*BiTree;
int main()
{
BiTree T;
ElemType search1,search2,insert;
T=CreateBiTree(); //建立二叉树
scanf(%d %d %d,search1,search2,insert);
PreOrderTraverse(T); //先序遍历
printf(\n);
InOrderTraverse(T); //中序遍历
printf(\n);
PostOrderTraverse(T); //后序遍历
printf(\n);
if(searchBiT(T,search1)==NULL)//查找函数
printf(0\n);
else
printf(1\n); //对第一个关键字进行查找
if(searchBiT(T,search2)==NULL)
printf(0\n);
else
printf(1\n); //对第二个关键字进行查找
T=InsertBiT(T,insert); //插入一个新结点
PreOrderTraverse(T); //对插入后的新树进行先序遍历
printf(\n);
InOrderTraverse(T); //对插入后的新树进行中序遍历
printf(\n);
PostOrderTraverse(T); //对插入后的新树进行后序遍历
printf(\n);
InOrderTraverseII(T); //对插入后的新树进行中序遍历(非递归算法)
printf(\n);
LevelOrderTraverse(T); //对插入后的新树进行层次遍历
return 0;
}
函数功能、参数说明及概要设计:
CreateBiTree();//创建二叉树函数,返回成功与否
文档评论(0)