王道 数据结构 p17 第8题
#include<iostream>
#define InitSize 100
#define arrLen 3
using namespace std;
typedef struct {
int *data;
int len,MaxSize;
}SeqList;
void init(SeqList &L){
L.data=new int[InitSize];
L.len=0;
if(L.data!=NULL)
cout<<"success!" <<endl;
else
cout<<"faild"<<endl;
}
void input(SeqList &L){
for(int i=0;i<arrLen;i++)
{
cout<<"请输入第"<<i+1<<"个数字:";
cin>>L.data[i];
L.len++;
}
}
void output(SeqList &L)
{
for(int i=0;i<L.len;i++)
{
cout<<L.data[i]<<" ";
}
cout<<endl;
}
void reverse(int A[],int left,int right)
{
int mid=(left+right+1)/2;
for(int i=0;i<mid-left;i++)
{
int temp=A[left+i];
A[left+i]=A[right-i];
A[right-i]=temp;
}
}
int exchange(int A[],int m,int n)
{
reverse(A,0,m+n-1);
reverse(A,0,n-1);
reverse(A,n,n+m-1);
}
int main(){
SeqList L1,L2,L3;
init(L1);
init(L2);
input(L1);
input(L2);
cout<<endl<<"L1:" ;
output(L1);
cout<<endl<<"L2:" ;
output(L2);
int m=L1.len;
int n=L2.len;
int A[m+n],i,j;
for(i=0;i<L1.len;i++)
{
A[i]=L1.data[i];
}
for(j=0;j<L2.len;j++)
{
A[i++]=L2.data[j];
}
cout<<endl<<"修改前A:";
for(int i=0;i<m+n;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
exchange(A,m,n);
cout<<endl<<"修改后A:";
for(int i=0;i<m+n;i++)
{
cout<<A[i]<<" ";
}
return 0;
}
|