#include
#include
#define LIST_INIT_SIZE 100
#define LISTCREMENT 10
#define ElemType int
typedef struct{
ElemType * elem;
int length;
int listsize;
}Sqlist;
void InitList_Sq(Sqlist &L){
L.elem=(ElemType
*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem){
exit(0);
}
L.length=0;
L.listsize=LIST_INIT_SIZE;
}
void ListInsert_sq(Sqlist &L,int i,ElemType e){
if(i<1||i>L.length+1){
exit(0);
}
ElemType *q,*p;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;p--){
*(p+1)=*p;
}
*q=e;
L.length++;
}
void ListDelete_Sq(Sqlist &L,int i,ElemType &e){
ElemType *q,*p;
q=&(L.elem[i-1]);
p=&(L.elem[L.length-1]);
e=*q;
for(q;q<=p;q++){
*q=*(q+1);
}
}
void MergeList_Sq(Sqlist La,Sqlist Lb,Sqlist &Lc){
Lc.length=La.length+Lb.length;
Lc.listsize=La.length+Lb.length;
Lc.elem=(ElemType
*)malloc(Lc.listsize*sizeof(ElemType));
ElemType * pa,* pb,* pc,* pa_last,* pb_last;
pa=La.elem;
pb=Lb.elem;
pc=Lc.elem;
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
while(pa<=pa_last && pb<=pb_last){
if(*pa <= *pb){
*pc++ = *pa++;
}
else{
*pc++ = *pb++;
}
}
while(pa<=pa_last){
*pc++=*pa++;
}
while(pb<=pb_last){
*pc++=*pb++;
}
}
int main(){
printf("选择你要进行的操作:\n1.插入元素 2.删除元素
3.按非递减顺序合并顺序表\n");
int flag;
scanf("%d",&flag);
int m,n,k,p;
Sqlist L;
InitList_Sq(L);
printf("输入顺序表的元素个数\n");
scanf("%d",&n);
L.length=n;
printf("输入顺序表的元素:\n");
for(int i=0;i<=n-1;i++){
scanf("%d",&m);
L.elem[i]=m;
}
printf("当前顺序表为:\n");
for(int j=0;j<=n-1;j++){
printf("%d ",L.elem[j]);
}
if(flag==1){
printf("请输入插入元素:\n");
scanf("%d",&k);
printf("\n请输入插入位置:\n");
scanf("%d",&p);
ListInsert_sq(L,p,k);
printf("...插入完毕!\n");
printf("新顺序表:\n");
for(int
q=0;q<=n;q++){
printf("%d ",L.elem[q]);
}
}
else if(flag==2){
printf("\n请输入要删除的元素位置:\n");
int r;
scanf("%d",&r);
int u;
ListDelete_Sq(L,r,u);
printf("新顺序表:\n");
for(int w=0;w
printf("%d ",L.elem[w]);
}
}
if(flag==3){
fflush(stdin);
system("cls");*/
int alength,blength,yuansu;
Sqlist La,Lb,Lc;
printf("请输入A的长度:\n");
scanf("%d",&alength);
InitList_Sq(La);
La.length=alength;
printf("请输入B的长度:\n");
scanf("%d",&blength);
InitList_Sq(Lb);
Lb.length=blength;
InitList_Sq(Lc);
Lc.length=alength+blength;
printf("请输入A元素:\n");
for(int f=0;f<=alength-1;f++){
scanf("%d",&yuansu);
La.elem[f]=yuansu;
}
printf("请输入B元素:\n");
for(int h=0;h<=blength-1;h++){
scanf("%d",&yuansu);
Lb.elem[h]=yuansu;
}
MergeList_Sq(La,Lb,Lc);
for(int t=0;t<=alength+blength-1;t++){
printf("%d",Lc.elem[t]);
}
}
return 0;
}