实验二 二叉排序树的非递归查找算法设计
《实验二 二叉排序树的非递归查找算法设计》由会员分享,可在线阅读,更多相关《实验二 二叉排序树的非递归查找算法设计(6页珍藏版)》请在装配图网上搜索。
1、实验报告课程名称数据结构实验成绩实验名称二叉排序树的非递归查找算法设计学号B10050812姓名 班级B100508日期12.5.8实验目的: 熟悉掌握二叉排序树的概念与特点,掌握与应用二叉排序树的查找、插入算法,训练和提高结构化程序设计能力及程序调试能力。实验条件:计算机一台,visual C+6.0实验内容与步骤:1. 问题描述设计二叉排序树的非递归查找算法,并利用此算法实现二叉树的插入、生成及查找。2. 数据结构类型定义typedef struct nodeKeyType key ; struct node *lchild,*rchild;BSTNode, *BSTree;3. 模块划分
2、(1).插入二叉排序树: int InsertBST(BSTree *bst, KeyType k)(2).创建二叉排序树:void CreateBST(BSTree *bst)(3).中序遍历二叉排序树:void InOrder(BSTree root)(4).查找:BSTree SearchBST(BSTree bst, KeyType key)(5).主函数:void main()4. 详细设计#include #include #define ENDKEY -1typedef int KeyType;typedef struct nodeKeyType key ; struct nod
3、e *lchild,*rchild;BSTNode, *BSTree;int InsertBST(BSTree *bst, KeyType k) BSTree r,s,pre;r=(BSTree)malloc(sizeof(BSTNode);r-key=k;r-lchild=NULL; r-rchild=NULL;if (*bst = NULL)*bst=r;return 1;pre=NULL;s=*bst;while(s) if(k=s-key)return 0; else if(kkey)pre=s;s=s-lchild; else pre=s;s=s-rchild;if(kkey)pre
4、-lchild=r;else pre-rchild=r;return 1;void CreateBST(BSTree *bst) KeyType key;*bst=NULL;scanf(%d, &key);while (key!=ENDKEY) InsertBST(bst, key);scanf(%d, &key);getchar();void InOrder(BSTree root) if (root!=NULL) InOrder(root-lchild);printf(%d ,root-key); InOrder(root-rchild); BSTree SearchBST(BSTree
5、bst, KeyType key)if (!bst)return NULL;else if (bst-key = key) return bst;else if (bst-key key) return SearchBST(bst-lchild, key);else return SearchBST(bst-rchild, key);void main()BSTree T;int tag=1;int m,n;printf(建立二叉排序树,请输入序列,以-1结束:n); CreateBST(&T);printf(中序遍历二叉排序树,输出序列为:n);InOrder(T); printf(n);w
6、hile(tag!=0)printf(请输入你要查找的元素:n); scanf(%d,&n); if(SearchBST(T,n)=NULL)printf(查找失败!#o#n); else printf(查找成功!o由返回地址索引到%dn,SearchBST(T,n)-key);printf(是否继续查找按1是按0否n);scanf(%d,&tag);5. 测试数据及结果实验总结(结论或问题分析):通过本次试验,对二叉排序树的概念与特点有了更深的理解,并且熟悉掌握了二叉排序树的查找、插入算法,提高了结构化程序设计的能力及程序调试的能力,所设计的程序变得更加合理,可以根据要求实现连续的查找某个节点的功能
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。