数据结构主要包括三个方面:数据间逻辑结构,数据的存储结构,数据间的运算。
1 逻辑结构:数据的逻辑关系
(1) 集合结构:
(2)线性结构
(3)树形结构
(4)图状结构
2 存储结构
(1)顺序结构:数组
(2)链式结构:链表
(3)索引结构:在储存结点信息的同时,还建立附加的索引表。 索引表由若干索引项组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引(Spare Index)。索引项的一般形式是:(关键字、地址) 关键字是能唯一标识一个结点的那些数据项。稠密索引中索引项的地址指示结点所在的存储位置;稀疏索引中索引项的地址指示一组结点的起始存储位置。
(4)散列结构:根据结点的关键字直接计算出该结点的存储地址
3 运算
create clear add find delete update 等。
散列函数-散列表-冲突
1 散列函数:
(1)除留余数法 h(key) = key mod M
(2)平方取中法 h(key) = M/w(x2/w)
(3)折叠法
2 解决冲突
(1)拉链法
(2)开地址法:
线性探查法(基本聚集):hi =(h(key)+i) mod M,i = 0,1,2,...,M-1
二次探查法(二次聚集):
双散列法:Hi = (h1(key)+i*h2(key)) mod M