




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 查找成都东软信息技术学院Computer Department 计算机系段恩泽2020-01-1614/14第七章 查找1、对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较? 找最大元和最小元至少需要进行n-1次比较。2、若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试讨论在查找成功两者在等概率时的平均查找长度: 有序表与无序表一样,都为(n+1)/2。3、为什么有序的单链表不能进行折半查找? 因为折半查找需要随机知道每个数据元素的位置,这是单链表做不到的。4、对给定的关键字集合,以不同的次序插入初始为空的树中,是否有可能得到同一棵二叉排序树? 不可能。5、写出顺序表上实现顺序查找的算法,并将监视哨设在高地址端。 int seqsearch(S_TBL tbl, int key) tbl.elem0.key = key; int i = 0; for(i = tbl.length; i = 0 & tbl.elemi.key != key; -i) ;return i;6、试写出二分查找的递归算法。 int Binarysearch(S_TBL tbl, int low, int high, int key) if(key = tbl.elem(low+high)/2) printf(“Find succeed!”); return (low+high)/2;else if(key key;+i);if(i ST.length | ST.elemi.key high) return 0; /*查找不到时返回*/mid = (low+high)/2;if(ST.elemmid.key = key) return mid;else if(ST.elemmid.keykey) return Search_Bin_Recursive(ST,key,low,mid-1);else return Search_Bin_Recursive(ST,key,mid+1,high); /Search_Bin_Recursive 9、折半查找,返回小于或等于待查元素的最后一个结点号。int Locate_Bin(SSTable ST,int key) int *r;r = ST.elem;if(key = rST.length.key) return ST.length;low = 1;high = ST.length;while(low = rmid.key & key rmid+1.key) /*查找结束的条件*/ return mid;else if(key L.idxL.blknum.maxkey) return ERROR; /*超过最大元素*/ low = 1;high = L.blknum;found = 0;while(low = high & !found) /*折半查找记录所在块号mid*/mid = (low+high)/2;if(key L.idxmid-1.maxkey)found = 1;else if(key L.idxmid.maxkey) low = mid+1;else high=mid-1;i = L.idxmid.firstloc; /*块的下界*/j = i + blksize - 1; /*块的上界*/temp = L.elemi-1; /保存相邻元素*/L.elemi-1 = key; /*设置监视哨*/for(k = j;L.elemk != key; -k); /*顺序查找*/L.elemi-1 = temp; /*恢复元素*/if(k data = key) return L.t;else if(L.t-datakey) for(p = L.h,i = 1;p-data != key;p = p-next,+i);else for(p = L.t,i = L.tpos;p-data != key;p = p-next,+i);L.t = p; /*更新t指针*/return p;/*Search_CSList*/分析:由于题目中假定每次查找都是成功的,所以本算法中没有关于查找失败的处理.由微积分可得,在等概率情况下,平均查找长度约为n/3. 12、在有序双向循环链表存储结构上的查找算法,假定每次查找都成功。typedef struct DLNode *pre;int data;DLNode *next; DLNode; typedef struct DLNode *sp;int length; DSList; /*供查找的双向循环链表类型 */DLNode *Search_DSList(DSList &L,int key) p = L.sp;if(p-data key)while(p-data key) p = p-pre;L.sp = p;else if(p-data data next;L.sp = p;return p;/*Search_DSList*/13、判断二叉树T是否二叉排序树,是则返回1,否则返回0。int last = 0;int flag = 1; int Is_BSTree(Bitree T)if(T-lchild & flag) Is_BSTree(T-lchild);if(T-data data;if(T-rchild & flag) Is_BSTree(T-rchild);return flag;/*Is_BSTree */14、找到二叉排序树T中小于x的最大元素和大于x的最小元素。int last = 0; void MaxLT_MinGT(BiTree T,int x) if(T-lchild) MaxLT_MinGT(T-lchild,x); /*本算法仍是借助中序遍历来实现*/ if(lastdata = x) /*找到了小于x的最大元素*/ printf(a=%dn,last);if(last data x) /*找到了大于x的最小元素*/ printf(b=%dn,T-data);last = T-data;if(T-rchild) MaxLT_MinGT(T-rchild,x);/*MaxLT_MinGT */15、从大到小输出二叉排序树T中所有不小于x的元素。void Print_NLT(BiTree T,int x) if(T-rchild) Print_NLT(T-rchild,x);if(T-data data);if(T-lchild) Print_NLT(T-lchild,x); /*先右后左的中序遍历*/*Print_NLT */16、删除二叉排序树T中所有不小于x元素结点,并释放空间。void Delete_NLT(BiTree &T,int x) if(T-rchild) Delete_NLT(T-rchild,x);if(T-datalchild;free(q); /*如果树根不小于x,则删除树根,并以左子树的根作为新的树根*/if(T) Delete_NLT(T,x); /*继续在左子树中执行算法*/*Delete_NLT */17、打印输出后继线索二叉排序树T中所有大于a且小于b的元素。void Print_Between(BiThrTree T,int a,int b) p = T;while(!p-ltag) p = p-lchild; /*找到最小元素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州省临床检验中心第十三届贵州人才博览会引才2人模拟试卷及1套完整答案详解
- 2025年枣庄市口腔医院公开招聘备案制工作人员(6人)模拟试卷及答案详解(考点梳理)
- 2025内蒙古第七批高层次人才需求目录(2025年4月29日发布)考前自测高频考点模拟试题及1套完整答案详解
- 公司与个人借款合同范本【标准】5篇
- 2025年上半年山东铁投集团校园招聘、社会公开招聘165人考前自测高频考点模拟试题参考答案详解
- 2025北京市大兴区瀛海第六幼儿园招聘模拟试卷(含答案详解)
- 2025广西石卡镇储备村(社区)“两委”后备人才152人考前自测高频考点模拟试题参考答案详解
- 2025年河北石家庄海关技术中心公开招聘劳务派遣类工作人员2名考前自测高频考点模拟试题完整答案详解
- 2025年贵溪市公安局第一批招聘警务辅助人员20人模拟试卷附答案详解(典型题)
- 2025南平国网顺昌县供电公司车辆驾驶服务项目驾驶员招聘考前自测高频考点模拟试题及一套答案详解
- 2025广西南宁上林县公安局面向社会招聘警务辅助人员50人笔试备考试题及答案解析
- 火锅店引流截流回流方案
- 2025年档案员考试试题及答案
- 2025-2026学年七年级英语上学期第一次月考 (福建专用) 2025-2026学年七年级英语上学期第一次月考 (福建专用)原卷
- 国自然培训课件
- 2025安徽普通专升本《大学语文》统考试题及答案
- 2024网络主播新职业发展报告-快手
- 2025年4月自考03450公共部门人力资源管理试题
- 辽宁省沈阳市第一二六中学教育集团2024-2025学年八年级上学期10月月考地理试题
- 2025届威海市重点中学高三下学期一模考试物理试题含解析
- 河北省定州市多校2024-2025学年七年级上学期第一次月考地理试题
评论
0/150
提交评论