数据结构主要包括三个方面:数据间逻辑结构,数据的存储结构,数据间的运算。

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)开地址法:

      线性探查法(基本聚集):h=(h(key)+i) mod M,i = 0,1,2,...,M-1

      二次探查法(二次聚集):

     双散列法:Hi = (h1(key)+i*h2(key)) mod M