第九章查找表查找表•同一类型的数据元素的集合对查找表进行的操作•查询某个特定的数据元素•检索特定的某个元素的属性•在查找表中插入一个数据元素•删除某个数据•静态查找表–仅查询和检索•动态查找表–查找到了要删除或者查找不到要插入查找定义•根据给定的某个值,在查找表中查找关键字•是数据元素的某个值,用于识别一个数据元素•若此关键字可以识别唯一的记录称主关键字•若此关键字可以识别多个记录则称次关键字•若查找表中存在这样一个待查记录,则称查找成功,给出结果,查找不成功,给出空记录或空指针•查找方式,取决查找表的结构•如:查字典和查电话不同•为了提高查找效率需要在查找表加一些人为的关系–字典按笔画建立索引,根据字的笔画到指定的页面顺序查
–电话按用户性质、地区划分,要到所属区域查
1静态查找表•表数据在查找过程中不变定义•数据对象D–具有相同特性的数据元素集合(无线性表特征)–每个元素含有类型相同的关键字,可唯一识别数据元素•数据关系R–数据元素同属一个集合静态查找表基本操作•create(&st,n)//构造含n个元素的查找表•destroy(&st)•search(st,key)//返回等于关键字key的元素位置•Traverse(st,visit())//遍历查找表静态查找表使用顺序结构的存储typedefstruct{ElemType*elem;//动态定义intlength;//元素个数}SSTable;•查找过程,数据不需移动静态查找表表示方法•顺序查找表(无序)•有序查找表•静态查找树表•索引顺序表1)
顺序查找表•以顺序表或线性链表表示静态查找表st
elem2137881992564568075st
length=10012345678910st
elem602137881992564568075st
length=10012345678910待找的数据放在