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

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

ID:55269392

大小:308.50 KB

页数:10页

时间:2020-05-08

数据结构_二叉排序树实验报告.doc_第1页
数据结构_二叉排序树实验报告.doc_第2页
数据结构_二叉排序树实验报告.doc_第3页
数据结构_二叉排序树实验报告.doc_第4页
数据结构_二叉排序树实验报告.doc_第5页
资源描述:

《数据结构_二叉排序树实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一正文红色部分表示示例内容,供参考、实验目的1、巩固和加深对数据结构课程基本知识的理解,综合数据结构课程里学的理论知识,完成对排序二叉树程序的设计。2、理解和掌握二叉树的各种基本数据结构的定义、存储结构和相应的算法,并能够用c语言实现。3、理解排序二叉树的建立过程。二、实验容采用llink-rlink方式存储二叉排序树,编写能够通过键盘输入建立二叉排序树,并在建立完立即在屏幕显示中序遍历结果的程序。三、实验环境1、硬件配置:Pentium(R)Dual-Core9CUPE65002.93GHz,1.96的

2、存2、软件环境:MicrosoftWindowsXPProfessionalServicePack3,MicrosoftVisualC++6.0四、需求分析1、输入的形式和输入值的围:根据题目要求与提示输入一些数字,且数与数之间用空格隔开并用0作为结束符。2、输出的形式:建立好的排序二叉树的中序遍历结果。3、程序所能达到的功能:能够通过键盘输入建立二叉排序树,并在建立完立即在屏幕显示中序遍历结果的程序4、测试数据:输入452453122890并用空格将数隔开,以0作为结束符,如:输入45245312289

3、0输出的中序遍历结果为:122428455390五、概要设计为了实现上述操作,应以结构体为存储结构。实现如下:structnode{intkey;//关键字的值structnode*lchild,*rchild;//左右指针}BSTNode,*BSTree;1、基本操作:(1)structnode{intkey;//关键字的值structnode*lchild,*rchild;//左右指针}BSTNode,*BSTree;。(2)voidCreateBST(BSTree*bst)创建二叉排序树(3)voi

4、dinorder(BSTreebt)递归法中序遍历二叉排序树(4)voidInsertBST(BSTree*bst,intkey)二叉排序树的插入结点2、本程序包含二个模块:(1)主程序模块;(2)创建二叉排序树、二叉排序树的插入结点、递归法中序遍历二叉排序树(3)模块调用图:主程序模块创建二叉排序树二叉排序树的插入结点递归法中序遍历二叉排序树3、流程图重点内容流程图如下:六、详细设计1、存储类型,元素类型,结点类型:structnode{intkey;//关键字的值structnode*lchild,*

5、rchild;//左右指针}BSTNode,*BSTree;元素类型为整形和指针形。2、每个模块的分析:(1)主程序模块:main(){BSTreebt;printf("pleaseinsertthenumbers(以0作为结束标志):");CreateBST(&bt);/*构造排序二叉树*/printf("中序遍历结果是:");inorder(bt);/*中序遍历排序二叉树*/printf("");getchar();}(2)创建二叉排序树函数模块voidCreateBST(BSTree*b

6、st){intkey;*bst=NULL;scanf("%d",&key);while(key!=0){InsertBST(bst,key);scanf("%d",&key);}}二叉排序树的插入结点函数模块voidInsertBST(BSTree*bst,intkey){BSTrees;if(*bst==NULL){s=(BSTree)malloc(sizeof(BSTNode));s->key=key;s->lchild=NULL;s->rchild=NULL;*bst=s;}elseif(key<(

7、*bst)->key)InsertBST(&((*bst)->lchild),key);//将s插入左子串elseif(key>(*bst)->key)InsertBST(&((*bst)->rchild),key);//将s插入右子串}递归法中序遍历二叉排序树voidinorder(BSTreebt){if(bt!=NULL){inorder(bt->lchild);printf("%3d",bt->key);inorder(bt->rchild);}}3)函数调用关系图main()CreateBST(

8、BSTree*bst)InsertBST(BSTree*bst,intkey)inorder(BSTreebt)3、完整的程序:#include"stdio.h"#include"malloc.h"typedefstructnode{intkey;//关键字的值structnode*lchild,*rchild;//左右指针}BSTNode,*BSTree;voidInsertBST(BSTree*bst,intkey)//二

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。