- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 查找 查找的基本概念 顺序表、有序表和索引表的查找 二叉平衡树 B-树、B+树的查找 散列表的查找 关键字 标识一个数据元素的某个数据项或组合项的值 查找表 具有同一类型(属性)的数据元素(记录)组成 集合 ,分为静态查找表和动态查找表两类. 查找 按给定的某个值kx,在查找表中查找关键字为给定值kx的数据元素(记录)。 typedef struct { KeyType key; // 关键字字段,可以是整型,字符串型、构造类型等 …… // 其它字段 } ElemType; 查找速度 占用存储空间多少 算法本身复杂程度 平均查找长度ASL(Average Search Length) 为确定记录在表中的位置,需和给定值进行比较的关键字的个数的期望值叫查找算法的~ 顺序存储结构 typedef struct { ElemType *elem; //数组基址 int length; //表长度 } S_TBL; 链式存储结构 typedef struct NODE { ElemType elem; // 结点的值域 struct NODE *next; //下一个结点指针域 } NodeType; 查找过程 从表的一端开始逐个进行记录的关键字和给定值的比较 条件 有序表——表中数据元素按关键字升序或降序排列 折半查找的思想 每次将待查记录所在区间缩小一半 例:05,13,19,21,37,56,64,75,80,88,92查找的关键字K=21。 05,13,19,21,37,56,64,75,80,88,92 05,13,19,21,37,56,64,75,80,88,92 05,13,19,21,37,56,64,75,80,88,92 条件 (1)确定查找区间的中点位置mid (2)将待查的K值与seqlist[mid].key比较 (3)若相等,查找成功并返回此位置 (4) 若不相等,确定新的查找区间,返回(1), 重新开始二分法查找 (5) 当上下界相等时,结束查找过程 查找过程 将表分成几块,块内无序,块间有序 先确定待查记录所在块,再在块内查找 适用条件 分块有序表—是后一个子表中所有记录的关键字均大于前一个子表中的最大关键字 算法实现 用数组存放待查记录,每个数据元素至少含有关键字域 建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针 以二叉链表作为二叉排序树的存储结构 typedef struct NODE { ElemType elem; //数据元素字段 struct NODE *lc,*rc; //左、右指针字段 }NodeType; //二叉树结点类型 原则 从二叉排序树中删除一个结点之后,使其仍能保持二叉排序树的特性即可。 p为叶子结点,只需修改p双亲f的指针 f- lc=NULL ,f-rc=NULL p只有左子树或右子树 p只有左子树,用p的左孩子代替p (1)(2) p只有右子树,用p的右孩子代替p (3)(4) p左、右子树均非空 沿p左子树的根C的右子树分支找到S,S的右子树为空,将S的左子树成为S的双亲Q的右子树,用S取代p (5) 若C无右子树,用C取代p (6) 对给定序列建立二叉排序树 若左右子树均匀分布,则其查找过程类似于有序表的折半查找。 若给定序列原本有序,则建立的二叉排序树就蜕化为单链表,其查找效率同顺序查找一样 需对均匀的二叉排序树进行插入或删除结点后,应对其调整,使其依然保持均匀。 平衡二叉树或者是一棵空树,或者是具有下列性质的二叉排序树 它的左子树和右子树都是平衡二叉树 左子树和右子树高度之差的绝对值(平衡因子)不超过1 左单旋转( LL型的处理) 右单旋转( RR型的处理) 先左后右双向旋转( LR型的处理) 先右后左双向旋转( RL型的处理) 第七章 查找 查找的基本概念 顺序表、有序表和索引表的查找 二叉平衡树 B-树、B+树的查找 散列表的查找 学习要点 熟练掌握顺序表和有序表的查找方法。 熟悉静态查找树的构造方法和查找算法,理解静态查找树和折半查找的关系。 熟练掌握二叉排序树的构造和查找方法。 理解二叉平衡树的维护平衡方法。 理解B-树,B+树的特点以及它们的建树过程。 熟练掌握哈希表的构造方法,深刻理解哈希表与其它结构的表的实质性的差别。 掌
您可能关注的文档
- 第5讲-词法分析-IV.ppt
- 第5章 自顶向下语法分析方法.ppt
- 第05章结构体与共同体.ppt
- 第06章 函数与编译预处理.ppt
- 第6章 自下而上分析和优先分析方法.ppt
- 第06章_LR分析法(1).ppt
- 第7章 SQL Server 2005安全与.ppt
- 第7章 结构体.ppt
- 第7章 结构体、共同体和枚举型.ppt
- 第7章 结构体与共同体.ppt
- 2025年储能技术商业化应用商业模式创新研究.docx
- 2025年储能技术与电动汽车双向互动(V2G)政策环境分析报告.docx
- 2025年储能技术商业化推广的商业模式创新策略探讨.docx
- 2025年储能技术商业模式与储能产业技术创新趋势研究报告.docx
- 2025年储能技术商业模式与可再生能源并网研究报告.docx
- 2025年储能技术商业模式与储能设备生命周期管理研究报告.docx
- 2025年储能技术商业模式与储能设备市场潜力预测报告.docx
- 2025年储能技术商业模式创新与产业发展趋势报告.docx
- 2025年储能技术商业模式创新与产业政策影响分析.docx
- 智慧校园中初中政治智能学习资源推荐策略与效果分析教学研究课题报告.docx
最近下载
- 检测单位各部门岗位职能职责.doc VIP
- 2025内蒙古鄂尔多斯市公安机关招聘留置看护警务辅助人员115人笔试参考题库附答案解析.docx VIP
- 模电教案-李国丽.doc
- 2023版中国结直肠癌及癌前病变内镜诊治共识PPT课件.pptx VIP
- 证监会现场核查工作底稿-A股首次公开发行IPO保荐底稿.docx VIP
- UIC513-1994铁路车辆乘坐舒适性评估.pdf VIP
- 2025年医学课件-右心声学造影.pptx VIP
- 企业内部控制培训课件完整版(164页PPT).ppt VIP
- 2024年秋人教版七年级英语上册全册课件:Unit 7.pptx VIP
- Unit 6 A day in the life Section B (课件)-2024-2025学年人教版英语七年级上册.pptx VIP
文档评论(0)