- 3
- 0
- 约7.07千字
- 约 39页
- 2019-01-08 发布于湖北
- 举报
Chapter11 搜索树 中国地质大学信息工程学院 内容提要 11.1 二叉搜索树 11.2 AVL树 11.3 红黑树 11.4 B-树 11.5 应用 查找表的分类 1、搜索树简介 可用于描述字典的数据结构: n个元素 跳表:进行搜索、插入或者删除操作所需要的平均时间为O(logn) ,而最坏情况下的时间为O(n); 散列:平均和最坏时间分别为O(1)和O(n),可适用于根据元素关键值进行的操作; 两者比较:使用跳表很容易对字典元素进行高效的顺序访问(如按照升序搜索元素),而散列却做不到这一点。 搜索树的引入 平衡搜索树:对一个n 元素的字典进行搜索、插入或者删除所需要的平均和最坏时间均为O(logn);并且所有字典元素能够在线性时间内按升序输出。 在搜索树中进行顺序访问时,搜索每个元素所需要的平均时间为O(1)。 搜索树既适用于根据元素关键值的操作,也适用于不按精确的关键值匹配进行字典操作的应用(比如寻找关键值大于k 的最小元素)。 2、二叉搜索树 散列无法提供较好性能的一些操作: 按关键值的升序输出字典元素:O(D+nlogn) 按升序找到第k个元素:O(n) 删除第k个元素:O(n) 相应平衡搜索树的操作复杂度: 按升序找到第k个元素:O(n) 按升序找到第k个元素:O(logn) 删除第k个元素:O(logn) (1)二叉搜索树(BST)的定义 1) 每个元素有一个关键值,并且没有任意两个元素有相同的关键值;因此所有的关键值都是唯一的。 2) 根节点左子树的关键值(如果有的话)小于根节点的关键值。 3) 根节点右子树的关键值(如果有的话)大于根节点的关键值。 4) 根节点的左右子树也都是二叉搜索树。 二叉搜索树-示例 带索引的二叉搜索树 在每个节点中添加一个LeftSize域。这个域的值是该节点左子树的元素个数加 1。 (2)BST的抽象数据类型 抽象数据类型BSTree { 操作: Create( ):创建一个空的二叉搜索树 Search(k, e):将关键值为k的元素返回到e中; 如果操作失败则返回false,否则返回true Insert(e):将元素e插入到搜索树中 Delete(k, e):删除关键值为k的元素并且将其返回到e中 Ascend( ):按照关键值的升序排列输出所有元素 } 带索引的BST-ADT描述 抽象数据类型IndexedBSTree { 操作: Create( ):产生一个空的带索引的二叉搜索树 Search(k, e):将关键值为k的元素返回到e中; IndexSearch(k, e):将第k个元素返回到e中 Insert(e):将元素e插入到搜索树 Delete(k, e):删除关键值为k的元素且将其返回到e中 IndexDelete(k, e):删除第k个元素并将其返回到e中 Ascend( ):按照关键值的升序排列输出所有元素 } (3)BST的类定义 templateclass E, class K 元素,关键值 class BSTree : public BinaryTreeE { public: bool Search(const K k, E e) const; BSTreeE,K Insert(const E e); BSTreeE,K Delete(const K k, E e); void Ascend() { InOutput(); } 中序升序输出 }; (4)BST-搜索 【思想】假设需要查找关键值为 k的元素,先从根开始。如果根为空,那么搜索树不包含任何元素,查找失败,否则将 k与根的关键值相比较: 如果 k小于根节点的关键值,则只需在左子树中搜索即可; 如果 k 大于根节点的关键值,则只需在右子树中搜索即可; 如果 k等于根节点的关键值,则查找成功,搜索终止! BST-搜索代码 templateclass E, class K bool BSTreeE,K::Search(const K k, E e) const { BinaryTreeNodeE *p = root; while (p) if (k p-data) p = p-LeftChild; else if (k p-data) p = p-RightChild; else { e = p-data; return true; }
您可能关注的文档
- CAD初学者最佳选择.ppt
- cad二次开发论文autocad二次开发论文.doc
- Caristi 不动点定理推广及应用.pdf
- Cdl20-17立式多级离心泵.pdf
- CDP连续数据保护备份容灾一体化方案.doc
- CES 现场虚拟现实终于到我们眼前了但戴着头盔自 high 暂时还流行不了.pdf
- Ch01-泛型和泛型接口.ppt
- ch1平面机构结构分析.ppt
- ch02 平面机构结构分析.ppt
- ch02-信息系统开发概述.ppt
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
最近下载
- 餐厅服务质量保证措施及服务承诺.docx VIP
- 史赛克SFDAI髓内钉系统商品名T中文说明书.pdf VIP
- 2025至2030特种车行业风险投资发展分析及运作模式与投资融资报告.docx VIP
- 监控系统及门禁系统维护方案.docx VIP
- AQ1029-2019 煤矿安全监控系统及检测仪器使用管理规范 (AQ 1029-2019).pdf VIP
- 2026-2031主机游戏市场调查报告.docx VIP
- 《华为组织力:构建持续打胜仗的团队》华为前高管深度解析华为组织底层逻辑-读书笔记.pdf VIP
- 职业健康体检PPT课件.pptx VIP
- 工会会员端午节慰问品采购 投标方案(技术方案).doc VIP
- 2025-2026学年人教版英语七年级上册期末复习.pdf VIP
原创力文档

文档评论(0)