#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef int ElemType;
typedef struct{
ElemType* elem;//整型指针,申请的对空间的起始地址存入elem
int TableLen;//存储动态数组里边的元素的个数
}SSTable;
void ST_Init(SSTable &ST,int len)
{
//多申请了一个位置为了存储哨兵
ST.TableLen=len+1;
ST.elem=(ElemType*)malloc(sizeof(ElemType)*ST.TableLen);
int i;
srand(time(NULL));//随机数生成
for(i=1;i<ST.TableLen;i++)//因为第0个是哨兵,所以从1随机
{
ST.elem[i]=rand()%100;//为了随机生成的树都在0-99之间
}
}
void ST_print(SSTable ST)
{
int i;
for(i=1;i<ST.TableLen;i++)
{
printf("%3d",ST.elem[i]);
}
printf("\n");
}
int Search_Seq(SSTable ST,ElemType key)
{
ST.elem[0]=key;//让0号元素作为哨兵
int i;
for(i=ST.TableLen-1;ST.elem[i]!=key;--i);//从后往前找,找到了,i刚好就是对应的位置
return i;
}
//顺序表查找
int main() {
SSTable ST;
ST_Init(ST,10);
ST_print(ST);//打印顺序表中的元素
ElemType key;
printf("please input search key:\n");
scanf("%d",&key);
int pos;
pos = Search_Seq(ST,key);
if(pos)
{
printf("find key,pos=%d\n",pos);
}else{
printf("not find\n");
}
return 0;
}
数据结构——顺序查找
最新推荐文章于 2024-10-19 14:25:05 发布
本文介绍了如何在C++中使用SSTable结构实现动态数组,包括初始化、随机生成元素和顺序查找功能。主要展示了`ST_Init`、`ST_print`和`Search_Seq`函数的使用。
摘要由CSDN通过智能技术生成