//实现顺序查找的算法
#include<stdio.h>
#include<malloc.h>
#include<malloc.h>
#define MAXL 100
typedef int KeyType;
typedef char InfoType[10];
typedef struct
{
KeyType key;// 关键字的数据类型
InfoType data;//其他数据
}NodeType;
typedef NodeType SeqList[MAXL];//顺序表类型
int SeqSearch(SeqList r,int n,KeyType k)//顺序查找算法
{
int i=0;
printf("查找过的元素: ");
while(i<n && r[i].key!=k)//从表头往后找
{
printf("%d ",r[i].key);//输出查找过的元素
i++;
}
if(i>=n)//未找到时返回-1
return -1;
else
{
printf("%d ",r[i].key);
return i;//找到时返回其位置
}
}
int main()
{
SeqList r;
int n;
KeyType k=10;
int a[]={3,6,2,10,1,8,5,7,4,9,20,30},i;
n=sizeof(a)/4;//计算数组中元素个数
for(i=0;i<n;i++)//建立顺序表
r[i].key=a[i];
printf("\n");
if((i=SeqSearch(r,n,k))!=-1)
printf("\n元素%d的位置是%d\n",k,i);
else
printf("\n元素 %d不在表中.\n",k);
printf("\n");
return 0;
}
数据结构源码笔记(C语言描述)汇总: