#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAX 50
#define error 1
typedef int Elemtype;
typedef struct {
Elemtype* elem;//动态数组基址
int len;//当前长度
int listsize;//总共分配的储存容量
}SqList;
void InitSset(SqList &L);
void AppendS(SqList &L);
void Insertelem(SqList &L);
void Deletlist(SqList &L,int i);
void mergelist(SqList &LA,SqList &LB,SqList &LC);
void OutS(SqList L);
int main(){
int i;
int n;//循环次数,数组的大小
SqList s;
cout << "请输入顺序表元素的个数:" << endl;
InitSset(s);
cin >> n;
cout << "请输入顺序表的元素:" << endl;
//循环n次
while(n--)
AppendS(s);
Insertelem(s);
OutS(s);
cout << endl;
cout<<"请输入要删除的顺序表元素位置:"<<endl;
cin>>i;
Deletlist(s,i);
OutS(s);
cout << endl;
SqList LB,LC;
InitSset(LB);
InitSset(LC);
cout << "请创建你要合并的顺序表LB:" << endl;
int h;
cout << "请输入LB的元素个数:" << endl;
cin >> h;
cout << "你输入的元素分别为:" << endl;
for(int a=0;a<h;a++){
cin>>LB.elem[a];
LB.len++;
}
mergelist(s,LB,LC);
cout<<"合并后:";
OutS(LC);
system("pause");
return 0;
}
//初始化函数
void InitSset(SqList &L){
L.elem = (Elemtype*)malloc(MAX * sizeof(Elemtype));
L.len = 0;
L.listsize = MAX;
}
//在最后插入一个成员
void AppendS(SqList &L){
Elemtype new1;
cin >> new1;
L.elem[L.len] = new1;
L.len++;
}
//插入成员
void Insertelem(SqList &L){
int i;
Elemtype e;
Elemtype *p ,*q;
cout << "输入插入的位置:";
cin >> i;
i = i - 1;
if (L.len > MAX - 1 || L.len < i || i < 0){
cout << "数组超限" << endl;
}
else{
cout << "输入插入数据:" << endl;
cin >> e;
q = &(L.elem[i]);
for (p = &(L.elem[L.len - 1]); p >= q; p--)
*(p + 1) = *p;
*q = e;
L.len++;
}
}
//删除成员
void Deletlist(SqList &L,int i){
Elemtype e;
Elemtype *p,*q;
if(i<0||i>L.len-1)
exit(error);
q=&(L.elem[i]);
e=*q;
p=L.elem+L.len-1;
for(q++;q<=p;q++)
*(q-1)=*q;
L.len--;
}
//顺序表的有序合并
void mergelist(SqList &LA,SqList &LB,SqList &LC){
Elemtype *pa,*pb,*pc,*pa_last,*pb_last;
LC.len=LA.len+LB.len;//新表的长度为两个表的长度之和
LC.elem=(Elemtype *)malloc(LC.len*sizeof(Elemtype));//分配空间
pc=LC.elem;//分别指向第一个元素
pa=LA.elem;
pb=LB.elem;
pa_last=LA.elem+LA.len-1;//指向最后一个元素
pb_last=LB.elem+LB.len-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++;
}
//输出
void OutS(SqList L){
int i;
for (i = 0; i < L.len; i++)
cout << L.elem[i] << " ";
}
我想问一下,在尾部追加新成员怎么写main()函数的代码啊?