在顺序表中查找元素
大致代码片有注释,若还有疑问,可进行评论
#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]);}}