当前课程知识点:数据结构(下) > 第七章 二叉搜索树 > (a)概述 > 07A-2 循关键码访问
与其它数据结构一样
二叉搜索树也是由一组数据项
所构成的集合
然而相对于其它的数据结构
二叉搜索树对其中数据项的访问方式
却有其鲜明的特点
具体来说
其中每一个数据项
都拥有各自的关键码key
并以此为特征互相区分
因此在这样一个数据集中
与其说我们在定位数据项
不如说实际上是定位关键码
以汽车为例
每一台汽车都通过它所拥有的车牌号
唯一指定
因此这样一种对数据项的访问方式
也称作循关键码访问
call-by-key
当然 对于二叉搜索树而言
这种访问方式是需要有一些先决条件的
具体来说 关键码与关键码之间
首先应该能够进行比较
也就是判断孰大孰小
其次 还应支持比对
也就是判断两个关键码
是否完全一致
因此为了简化和抽象
在接下来的讨论中
我们不妨假设整个数据集中的数据项
都已统一地表示和实现为词条的形式
那么词条也就是entry
究竟是什么呢?
一般而言
词条结构应该包括以下要素
首先每一个词条的确应该
拥有一个关键码
而词条所包含的其它信息
则笼统地归入一个名为value的域
所以简明地说 每一个词条
实际上都是由key和value
构成的这么样一个组合
也称作
此外正如我们刚才所言
词条与词条之间应该能够
互相比较和比对
如果词条结构原本并不支持这两条
就需要像这里这样
对相关的操作符进行重载
可以看到
所谓entry之间的比较和比对
按照这种方式
实际上都转化为了词条中
关键码的比较和比对
那么在所有的数据项
都已符合这种词条的规范之后
二叉搜索树又当如何定义
并且组织呢?
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试