数据结构实验报告二叉排序树.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WORD格式整理 专业知识分享 《数据结构》实验报告 ◎实验题目: 创建一个二叉排序树,并以先序、中序、后序遍历输出。 ◎实验目的:熟练掌握二叉排序树建立的算法 ◎实验内容:已知n个元素,创建一个二叉排序树,以先序、中序、后序遍历输出, 并计算每个节点的平衡因子。 一、需求分析 1.本程序输入应为一组数,将这组数作为关键字创建一个二叉排序树。 2.本程序输出应为该建立好的二叉排序树的先序、中序、后序遍历输出,以及每个节点的平衡因子。 3. 程序执行的命令包括:(1)创建二叉排序树(2)先序非递归遍历输出(3)中序非递归遍历输出(4)后序非递归遍历输出(5)计算并输出每个节点的平衡因子 4.测试数据: 输入元素的个数为8,元素为53 25 76 20 48 14 60 84 输出为: 先序遍历:53 25 20 14 48 76 60 84 中序遍历:14 20 25 48 53 60 76 84 后序遍历:14 20 48 25 60 84 76 53 平衡因子:节点53的平衡因子为1 节点25的平衡因子为1 节点20的平衡因子为1 节点14的平衡因子为0 节点48的平衡因子为0 节点76的平衡因子为0 节点60的平衡因子为0 节点84的平衡因子为0 二 概要设计 为了实现以上操作,应以二叉链表为存储结构。 基本操作: node *create() 创建二叉排序树 void NRPreorder(node *bt) 先序非递归遍历输出 void NRinorder(node *bt) 中序非递归遍历输出 void NRpostorder(node *bt) 后序非递归遍历输出 int height(node *bt) 计算左右子树深度 void shendu(node *bt) 计算平衡因子 本程序包含七个模块 主程序模块 二叉排序树创建模块 计算左右子树深度模块先序遍历模块 计算左右子树深度模块 中序遍历模块 后序遍历模块 计算左右子树深度模块 计算平衡因子模块 计算平衡因子模块模块调用图 计算平衡因子模块 二叉排序树创建模块 二叉排序树创建模块 主程序模块 主程序模块 后序遍历模块中序遍历模块先序遍历模块 后序遍历模块 中序遍历模块 先序遍历模块 三 详细设计? 元素类型,结点类型和指针类型: #define maxsize 100 typedef struct node { char data; struct node *lc; struct node *rc; }node; node *s[maxsize]; node *bt; node *q,*p; 2.每个模块的分析: (1)主程序模块: int main() { node *bt; bt=create(); printf(该二叉树的先序递归遍历序列为: ); preorder(bt); printf(\n); printf(该二叉树的中序递归遍历序列为: ); inorder(bt); printf(\n); printf(该二叉树的后序递归遍历序列为: ); postorder(bt); printf(\n); printf(该二叉树的先序非递归遍历序列为:); NRPreorder(bt); printf(\n); printf(该二叉树的中序非递归遍历序列为:); NRinorder(bt); printf(\n); printf(该二叉树的后序非递归遍历序列为:); NRpostorder(bt); printf(\n); printf(以先序遍历输出该二叉树,每个节点的平衡因子如下:\n); shendu(bt); getchar(); getchar(); return 0; } (2)二叉排序树创建模块: node *create() { node *bt; node *q,*p; bt=NULL; /*根节点指针置空*/ int x; int i; int m; int j; printf(请输入数据个数:\n); scanf(%d,m); printf(请输入数据:\n); for(j=0;jm;j++) { scanf(%d,x); i=0; q=(node *)malloc(sizeof(node)); /*申请新节点,将新节点数据

文档评论(0)

文档分享 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档