9.3.1 动态查找表的类型定义 动态查找表的抽象数据类型定义如下: ADT DynamicSearchTable { 数据对象D:D是具有相同特性的数据元素的集合。每个数据元素含有类型相同 的关键字,可唯一标识数据元素。 数据关系R:数据元素同属一个集合。 基本操作P: InitDSTable(&DT); 操作结果:构造一个空的动态查找表 DT。 DestroyDSTable(&DT); 初始条件:动态查找表DT存在; 操作结果:销毁动态查找表 DT。 SearchDSTable(DT, kval); 初始条件:动态查找表DT存在,kval 为和关键字类型相同的给定值; 操作结果:若DT中存在其关键字等于 kval 的数据元素,则函数 值为该元素的值或在表中的位置,否则为"空"。 InsertDSTable(&DT, e); 初始条件:动态查找表DT存在,e 为待插入的数据元素; 操作结果:若DT中不存在其关键字等于e.key的数据元素,则插入e 到DT。 DeleteDSTable(&T, kval); 初始条件:动态查找表DT存在,kval 为和关键字类型相同的给定值; 操作结果:若DT中存在其关键字等于 kval 的数据元素,则删除之。 TraverseDSTable(DT, Visit()); 初始条件:动态查找表DT存在,Visit 是对结点操作的应用函数; 操作结果:按某种次序对DT的每个结点调用函数visit()一次且至多一次。 一旦 visit() 失败,则操作失败。 } ADT DynamicSearchTable 可见,动态查找表的特点是,在查找过程中尚需进行"插入"或"删除"的操作。因此,表示动态查找表的结构应不仅便于查找,还应便于插入和删除。 |