网站大量收购独家精品文档,联系QQ:2885784924

数据结构第九章 查找part3.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第九章 查找part3

* Status SecondOptimal(BiTree T, ElemType R[], float sw[], int low, int high) { // 由有序表R[low..high]及其累计权值表sw // 递归构造次优查找树T。 选择最小的ΔPi值 if (!(T = (BiTree)malloc(sizeof(BiTNode)))) return ERROR; T-data = R[i]; // 生成结点 构造次优查找树的算法 if (i==low) T-lchild = NULL; // 左子树空 else SecondOptimal(T-lchild, R, sw, low, i-1); // 构造左子树 if (i==high) T-rchild = NULL; // 右子树空 else SecondOptimal(T-rchild, R, sw, i+1, high); // 构造右子树 return OK; } // SecondOptimal 次优查找树采用二叉链表的存储结构 Status CreateSOSTre(SOSTree T, SSTable ST) { // 由有序表 ST 构造一棵次优查找树 T // ST 的数据元素含有权域 weight if (ST.length = 0) T = NULL; else { FindSW(sw, ST); // 按照有序表 ST 中各数据元素 // 的 weight 值求累计权值表 SecondOpiamal(T, ST.elem, sw, 1, ST.length); } return OK; } // CreatSOSTree 四、索引顺序表 索引顺序查找又称分块查找 数据元素的特点 若把所有n个数据元素分成m块, 第一块中任一元素的关键字都小于第二块中任一元素的关键字,第二块中任一元素的关键字都小于第三块中的任一元素的关键字...,第m-1块中任一元素的关键字都小于第m块中的任一元素的关键字.而每一块中元素的关键字不一定是有序的。 索引顺序查找的优点是: 在表中插入或删除一个元素时,只要找到该元素所属的块,然后在块内进行插入和删除。因块内元素的存放是任意的,所以插入和删除时不需移动大量元素.所付出的代价是增加了存放索引表的辅助空间。 索引顺序查找算法 基本思想: ①先抽出各块中的最大关键字构成一个索引表; ②查找分两部进行: 先对索引表进行折半查找或顺序查找,确定待查记录在哪一块。 在已确定的那一块中进行顺序查找。 21 33 43 85 17 8 21 19 43 37 40 31 33 22 25 61 78 73 55 85 索引顺序查找示例 将17,8,21,19,31,33,22,25,43,37,40,61,78,73,55,85 分为4块: [17,8,21,19], [31,33,22,25], [43,37,40], [61,78,73,55,85] 以每块中最大关键字作为该块所有元素的索引 索引顺序表的查找过程: 1)由索引确定记录所在区间(块); 2)在顺序表的某个区间(块)内进行查找。 注意:索引可以根据查找表的特点来构造。 可见, 索引顺序查找的过程也是一个 “缩小区间”的查找过程。 索引顺序查找的平均查找长度 = 查找“索引”的平均查找长度 + 查找“顺序表”的平均查找长度 四种查找方法比较 顺序、链式均可,索引表顺序存储 表中元素逐段有序 次小 分块查找 仅适用于顺序存储 仅适用于顺序存储 顺序、链式结构均可 表的存储结构 仅适用于有序表 仅适用于有序表 有序表、无序表均可 表的结构 不等概率查找最小 等概率查找最小 最大 平均查找长度 静态树表查找 折半查找 顺序查找 9.2 动 态 查 找 树 表 ?(n) ?(1) ?(n) ?(1) ?(nlogn) 综合上一节讨论的几种查找表的特性: 查找 插入

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档