建立顺序表存储数据序列(10,20,30,40,50,60,70,80,90,100)

#include 
#include 

//定义表结构
typedef struct{
	int data[12];
	int length;
}SqList;


//创建顺序表
void CreateList(SqList *&L,int a[],int n){
	L = (SqList *)malloc(sizeof(SqList));
	for(int i = 0;i < n;i++){
		L->data[i] = a[i];
	}
	L->length = n;
} 

/*//初始化顺序表 
void InitList(SqList *&L){
	L = (SqList *)malloc(sizeof(SqList));
	L->length = 0;
}*/

//显示顺序表中的元素
void ShowList(SqList *&L){
	if (L->length ==0){
		printf("该表目前为空");
	}
	else{
		for(int i = 0;i<L->length;i++){
			printf("%d",L->data[i]);
			printf("\t");
		}
	}
}

// 插入元素
void InsertList(SqList *&L,int e,int n){
	int j = 0;
	if(n<1 || n>L->length){
		printf("您插入的位置有误,请重新插入");
	}
	else{
		for(j = L->length;j>n;j--){
		L->data[j] = L->data[j-1];
		}
		L->data[n] = e;
		L->length++;
	}
} 

//查找最大数和最小数
void  FindMax(SqList *L){
	int max = 0;
	for(int i = 0;i<L->length;i++){
		if(L->data[i]>max){
			max = L->data[i];
		}
	}
	printf("该表的最大值是:%d\n",max);
} 

void FindMin(SqList *L){
	int min = L->data[1];
	
	for(int i = 0;i<L->length;i++){
		if(L->data[i]< min){
			min = L->data[i];
		}
	}
	printf("该表的最小值是:%d",min);
}

//按元素查找序列号
int SelectList(SqList *L,int e){
	int i = 0;
	while(i<L->length&&L->data[i] != e){
		i++;
		}
		if(i >= L->length)
			return 0;
		else
			return i+1;
	
} 
 
//删除表内第n个元素
void DeleteElem(SqList *&L,int n){
	int j = 0;
	if(n<1||n>L->length){
		printf("您输入的数据有误,该表中有%d个元素",L->length);
	}
	else{
		n--;
		for(j = n;j<L->length;j++){
			L->data[j] = L->data[j+1]; 
		}
		L->length--;
		printf("第%d个元素已删除",n+1);
	}
} 
	TGV 
int main(){
	SqList *L;
	int a[10] = {10,20,30,40,50,60,70,80,90,100};
	CreateList(L,a,10);
	int flag;
	printf("本次实验题目为1/2/3/4/5/6 \n");
	printf("请输入要测试的题目序号:");
	scanf("%d",&flag);
	if(flag==1){
		printf("输出顺序表的所有元素\n");
		ShowList(L);
		
	}
	else if(flag==2){
		printf("输出顺序表中的最大值和最小值\n");
		FindMax(L);
		FindMin(L); 
	}
	else if(flag==3){
		printf("键盘输入一个数x,如x在表中返回其在表中的位序,不在返回相应提示信息\n");
		int x;
		printf("请输入要查询的元素:"); 
		scanf("%d",&x);
		int location = SelectList(L,x);
		if (location == 0){
			printf("列表中没有您查找的元素");}
		else 
			{printf("您查找的元素在列表中的第%d位",location);} 
	}
	else if(flag==4){
		printf("删除顺序表中的第8个元素,并输出顺序表中的所有元素\n");
		int n = 8;
		DeleteElem(L,n);
		printf("删除完成,最新顺序表如下:");
		ShowList(L);
	}
	else if(flag==5){
		printf("在第5个元素后面插入新元素55,并输出顺序表中的所有元素\n");
		int n = 5;
		int e = 55;
		InsertList(L,e,n);
		printf("插入完成,最新顺序表如下:");
		ShowList(L); 
	}
	else if(flag==6){
		printf("输出顺序表的长度\n");
		printf("顺序表的长度为:%d",L->length);
	}
	else {
		printf("您输入的题目有误,本次实验只有六个题目"); 
	}
}

作者:诗酒趁年华!
qq:664474618
一起学习,一起进步!

你可能感兴趣的:(c语言,算法)