#include<stdio.h>
#include<stdlib.h>
typedef int KeyType;
typedef int InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}ElemType;
typedef struct{
ElemType *R;
int Length;
}SSTable;
int search_seq(SSTable ST,KeyType key){
ST.R[0].key=key;//哨兵
for(int i=ST.Length;i>=1;--i){//从后往前找
if(ST.R[i].key==key)
return i;
}
}
int main(){
//创建一个长度为10的顺序表
SSTable ST;
ST.R = (ElemType *)malloc(sizeof(ElemType) * 10);
ST.Length = 10;
//初始化数据
for(int i = 1; i <= ST.Length; ++i){
ST.R[i].key = i;
ST.R[i].otherinfo = i * 2;
}
for(int i=1;i<=10;i++){
printf("%d ",ST.R[i].key);
}
//查找元素
int key = 6;
int index = search_seq(ST, key);
if(index > 0){
printf("元素 %d 的下标为 %d\n", key, index);
}
else{
printf("元素 %d 不存在\n", key);
}
free(ST.R); //释放内存
return 0;
}
6.1顺序查找——结构体法
最新推荐文章于 2024-08-29 22:06:50 发布