顺序查找表一、有序查找表二、三、索引顺序表
一、顺序查找表 二、有序查找表 三、索引顺序表
顺序查找表一、以顺序表或线性链表表示静态查找表回顾顺序表的查找过程:kKST.elem218819928075370564[5613?39[110256784101ST.Length假设给定值 e=64,要求 ST.elem[k]=e,问:k=?
以顺序表或线性链表表示静态查找表 一、顺序查找表 21 37 88 19 92 05 64 56 80 75 13 0 1 2 3 4 5 6 7 8 9 10 11 ST.Length ST.elem 回顾顺序表的查找过程: 假设给定值 e=64,要求 ST.elem[k] = e, 问: k = ? k k
int location( SqList L, ElemType& e,Status (*compare)(ElemType, ElemType)) [k= 1;p = L.elem;while ( k<=L.length &&!(*compare)(*++p, e))) k++;if ( k<= L.length) return k;else return 0:?//location
int location( SqList L, ElemType& e, Status (*compare)(ElemType, ElemType)) { k = 1; p = L.elem; while ( k<=L.length && !(*compare)(*++p, e))) k++; if ( k<= L.length) return k; else return 0; } //location
ST.elem64213788198092751305164[561201358946710[11ST.Lengthkey=641ST.elem6021807513371881992.10564|561589267100134[11ST.Lengthkey=60
21 37 88 19 92 05 64 56 80 75 13 0 1 2 3 4 5 6 7 8 9 10 11 ST.Length ST.elem i 21 37 88 19 92 05 64 56 80 75 13 0 1 2 3 4 5 6 7 8 9 10 11 ST.Length ST.elemi 60 i key=64 key=60 i 64
int Search Seq(SSTable STKeyType key) {//在顺序表ST中顺序查找其关键字等于//key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0“哨兵'ST.elem[O].key = key;--i);for (i=ST.length; ST.elem[i].key!=key,/从后往前找return i;//找不到时,为0 // Search Seg
int Search_Seq(SSTable ST, KeyType key) { // 在顺序表ST中顺序查找其关键字等于 // key的数据元素。若找到,则函数值为 // 该元素在表中的位置,否则为0。 ST.elem[0].key = key; // “哨兵” for (i=ST.length; ST.elem[i].key!=key; -i); // 从后往前找 return i; // 找不到时,i为0 } // Search_Seq