实验十 查找技术验证实验报告.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
栈 特殊线性表 班级: 计算机11-1 学号: 姓名: 成绩:_________ 实验十 查找技术验证实验 实验目的 (1)掌握折半查找算法的基本思想; (2)掌握折半查找算法的实现方法; (3)掌握折半查找算法的时间性能; (4)掌握二叉排序树定义和特性; (5)掌握二叉排序树的建立方法; (6)实现基于二叉排序树的查找技术; (7)掌握二叉排序树的查找性能. 实验内容 (1)对给定的有序数组(假设长度为n),查找数组中与给定值k相等的元素。 (2)①对给定的一组无序序列,建立一棵二叉排序树; ②对建立的二叉排序树实现查找操作。 设计与编码 折半查找验证 #includeiostream using namespace std; int BinSearch1(int r[ ], int n, int k) { int low=1; int high=n; int count=0; while (low=high) { int mid=(low+high)/2; count++; if (kr[mid-1]) high=mid-1; else if (kr[mid-1]) low=mid+1; else { cout比较次数是:count; return 0; } } return 0; } int main() { int n,b,a[100]; cout*********************endl; cout请输入数组的个数:; cinn; cout请输入各个数的值:; for(int i=0;in;i++) cina[i]; cout请输入你要查找的值:; cinb; BinSearch1(a,n,b); coutendl; cout*********************endl; return 0; } ㈡二叉排序树的建立 #includeiostream using namespace std; struct BiNode { int data; BiNode *lchild, *rchild; }; class BiSortTree { public: void desplayTree(void); //显示这个树 BiSortTree(int a[],int n); //建立查找集合a[n]的二叉排序树 ~BiSortTree( ){}; //析构函数,释放二叉排序树中所有结点,同二叉链表的析构函数 void InsertBST(BiNode *root, BiNode *s); //在二叉排序树中插入一个结点s BiNode *searchTree(int k); //在树中查找一个值 private: BiNode *root; //二叉排序树(即二叉链表)的根指针 void ShowTree(BiNode *root); //显示 BiNode *SearchBST(BiNode *root, int k); //查找值为k的结点 }; //二叉排序树插入算法 void BiSortTree::InsertBST(BiNode *root, BiNode *s) { if (root==NULL) root=s; else if (s-dataroot-data) InsertBST(root-lchild, s); else InsertBST(root-rchild, s); } //构造二叉排序树 BiSortTree::BiSortTree(int r[], int n) { root=NULL; for (int i=0; in; i++) { BiNode *s=new BiNode; s-data=r[i]; s-lchild=NULL; s-rchild=NULL; InsertBST(root,s); } } //二叉排序树查找算法 BiNode* BiSortTree::searchTree(int k) { return SearchBST(root,k); }

文档评论(0)

有志者事竟成 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7114163151000053

1亿VIP精品文档

相关文档