至尊宝的传说
1.索引表的类型可定义如下:struct IndexItem{IndexKeyType index;//IndexKeyType为事先定义的索引值类型int start;//子表中第一个元素所在的下标位置int length;//子表的长度域};2.首先根据给定的索引值K1,在索引表上查找出索引值等于K1的索引项,以确定对应子表在主表中的开始位置和长度,然后再根据给定的关键字K2,在对应的子表中查找出3。关键字等于K2的元素。设数组A是具有mainlist类型的一个主表,数组B是具有indexlist类型的在主表A上建立的一个索引表,m为索引表B的实际长度,即所含的索引项的个数,K1和K2分别为给定带查找的索引值和关键字,并假定每个子表采用顺序存储,则索引查找算法为:int Indsch(mainlist A, indexlist B, int m, IndexKeyType K1, KeyType K2){//利用主表A和大小为 m 的索引表B索引查找索引值为K1,关键字为K2的记录//返回该记录在主表中的下标位置,若查找失败则返回-1int i, j;for (i = 0; i < m; i++)if (K1 == B[i].index)break;if (i == m)return -1; //查找失败j = B[i].start;while (j < B[i].start + B[i].length){if (K2 == A[j].key)break;elsej++;}if (j < B[i].start + B[i].length)return j; //查找成功elsereturn -1; //查找失败}