在顺序表中查找元素
大致代码片有注释,若还有疑问,可进行评论
#include<stdio.h>
#include<stdlib.h>
#define Maxsize 10
//定义一个顺序表结构体
typedef struct{
int *elem; //顺序表的基址
int length; //顺序表的长度
}SqList;
//顺序表的初始化定义
SqList InitList(SqList &L){
//给顺序表基址分配内存
L.elem = (int *)malloc(Maxsize * sizeof(int));
//给顺序表赋值为0
L.length = 0;
return L;
}
//声明数据结构的操作
int LocateElem(SqList L,int e);
void DisplayList(SqList L);
int main(){
//定义一个顺序表
SqList L;
//对顺序表进行初始化
L = InitList(L);
int i,n;
//给顺序表赋值
for(i=0;i<Maxsize;i++){
L.elem[i] = i;
L.length++;
}
printf("顺序表如下:\n");
DisplayList(L);
printf("\n请输入要查找的元素:");
scanf("%d",&n);
i = LocateElem(L,n);
if(i==0){
printf("\n顺序表没有找到该元素\n");
}else{
printf("要查找元素的位置:%d",i);
}
return 0;
}
//查找元素函数
int LocateElem(SqList L,int e){
int i;
//使顺序表从头开始一个一个找,若成功找到,返回其在线性表的位置,没有找到打印错误信息
for(i=0;i<L.length;i++){
if(L.elem[i] == e){
return i+1;
}
}
return 0;
}
void DisplayList(SqList L){
int i;
for(i=0;i<L.length;i++){
printf("%d ",L.elem[i]);
}
}
版权声明:本文为qq_44208167原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。