编辑代码

#include <stdio.h>
#define dataType1 int
#define maxSize 100
//描述一维数组
typedef struct
{
	dataType1 data[maxSize];
	int len;
}sequenList;
//初始化操作
void initIate(sequenList *L)
{
	L->len=0;
	return;
}
//求表长度操作
int length(sequenList *L)
{
	return(L->len);
}
//取元素操作
dataType1 get(sequenList *L,int i)
{
	if(i<1 || i>L->len)
		return(-1);
	else
		return (L->data[i-1]);
}
//定位操作
int locate(sequenList *L,dataType1 x)
{
	int k;
	k=1;
	while(k <= L->len && L->data[k-1]!= x)
		k++;
	if(k <= L->len)
		return(k);
	else
		return 0;
}
//插入操作
void insert(sequenList *L,int i,dataType1 b)
{
	int k;
	if(i<1 || i>L->len+1 || L->len>=maxSize)/*判断位置i是否存在以及是否有空的存储单元*/
		printf("error");
	else
	{
		for(k=L->len;k>=i;k--)/*将位置i之后的数据元素向后移动一个位置*/
			L->data[k]=L->data[k-1];
		L->data[i-1] = b;
		L->len++;
	}
}
//删除操作
void DELETE(sequenList *L,int i)
{
	int k;
	if(i<1 || i>L->len || L->len == 0)
		printf("erroe");
	else
	{
		for(k=i+1;k<=L->len;k++)
			L->data[k-2] = L->data[k-1];
			L->len--;
	}

}
//判断表空的操作
int empty(sequenList *L)
{
	if(L->len == 0)
		return(1);
	else
		return(0);
}
int main()
{
	sequenList list1,*L1,list2,*L2,list3,*L3;
	L1=&list1;
	L2=&list2;
	L3=&list3;
	initIate(L1);
	initIate(L2);
	initIate(L3);
	insert(L1,1,2);
	insert(L1,2,4);
	insert(L1,3,6);
	insert(L2,1,3);
	insert(L2,2,5);
	insert(L2,3,7);
	insert(L2,4,9);
	printf("%s","La:");
	for(int i = 1;i<=length(L1);i++){
		printf("%d\t",get(L1,i));
	}
	printf("\n");
	printf("%s","Lb:");
	for(int j = 1;j<=length(L2);j++){
		printf("%d\t",get(L2,j));
	}
	for(int l = 1;l<=length(L1);l++){
		insert(L3,l,get(L1,l));
	}
	printf("\n");
	for(int k = 1;k<=length(L2);k++){
		insert(L3,k + length(L1),get(L2,k));
	}
	int temp = 0;
	for(int n = L3->len - 1;n>0;n--){
		for(int o = 0;o<n;o++){
			int temp = 0;
			if(L3->data[n] < L3->data[o]){
				temp = L3->data[n];
				L3->data[n] = L3->data[o];
				L3->data[o] = temp;
			}
		}
	}
	printf("%s","Lc:");
	for(int m = 1;m<=length(L3);m++){
		printf("%d\t",get(L3,m));
	}
	printf("\n");
	return 0;
}