B+树的基本概念
【应用】为数据库设计的一种B树的变形树
【定义】
一个m阶的B+树:
1. 每个分支结点至多有m棵子树(子结点)
1. 字和指向该子树的指针,不含有该关键字对应记录的存储地址(B树中结点还存储着对应磁盘页面的地址,便于从B树中找到结点后,从磁盘将该结点信息读入内存)
2. 在B+树中,叶结点包含了全部关键字,即在非叶结点中出现的关键字也会出现在叶结点中;而在B树中,叶结点包含的关键字和其他结点包含的关键字是不重复的。(其实这里的叶结点我的理解是终端结点)
散列表
【特点】根据关键字而直接进行访问的数据结构。通过散列函数
建立关键字和存储地址之间的一种直接映射关系。
【注】理想情况下,对散列表进行查找的时间复杂度为O(1),即与表中个数无关。但是难免存在要解决冲突的情况即多个key被映射到同一个地址。
冲突:散列函数可能会把两个或连个以上的不同关键字映射到同一地址
同义词:这些发生碰撞的不同关键字
【散列函数】
【要求】
1) 定义域必须包含所有关键字,而值域则依赖于散列表大小或地址范围。(可见允许多对一,毕竟内存资源是很宝贵的。)
2) 散列函数计算出来的地址应该等概率,均匀的分布在整个地址空间,从而减少冲突发生。
3) 散列函数应尽量简单,能够在较短时间内计算出任一关键字对应的散列地址。
【