#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#define maxn 100//设置的表长的最大值
using namespace std;
typedef struct//顺序表的存储结构,这里我将数据类型都定义为int型
{
int num[maxn];//用num[]数组存储表的元素
int length;//计算表长
}SSTable;
int Search_Seq(SSTable ST,int key)//查找函数
{//在顺序表ST中顺序查找其关键字等于key的数据元素,若找到函数的值为该元素在表中的位置,否则为0。
int i;
for(i=ST.length;i>=1;--i)
if(ST.num[i]==key) return i;
return 0;
}
int main()
{
int n,i;
SSTable ST;
int position;
//KeyType key;
int key;
printf("输入顺序表中元素的个数:");
scanf("%d",&n);
ST.length=n;
printf("输入各个元素的值:");
for(i=1;i<=n;i++)
{
scanf("%d",&ST.num[i]);
}
sort(ST.num+1,ST.num+n+1);//sort()函数使排序函数,传说中的快排
printf("输出排好序的元素:");
for(i=1;i<=n;i++)
{
printf("%d ",ST.num[i]);
}
printf("\n");
printf("输入要查找的元素的值:");
scanf("%d",&key);
position=Search_Seq(ST,key);//把查找到的元素的位置赋值给position,并在后面输出position
if(position)
{
printf("所查找元素多的位置是:%d\n",position);
}
else printf("查找的语速不在表中(查找失败)\n");
return 0;
}
线性表的顺序查找
最新推荐文章于 2023-12-22 16:58:24 发布