顺序表的查找C语言数据结构

在顺序表中查找元素
大致代码片有注释,若还有疑问,可进行评论

#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版权协议,转载请附上原文出处链接和本声明。