1 #include <iostream.h> 2 typedef int ElemType; 3 typedef struct{ 4 ElemType *elem; 5 int length; 6 }SeqList; 7 8 void InitSeq(SeqList &L,int n,ElemType a[]) 9 { int i=0; 10 L.elem=new ElemType[n]; 11 while(i<n) 12 {L.elem[i]=a[i];i++;} 13 L.length=n; 14 } 15 void DispSeq(SeqList L) 16 { 17 int i=0; 18 while(i<L.length) 19 {cout<<L.elem[i]<<'\t';i++;} 20 } 21 void UnionSeq(SeqList L1,SeqList L2,SeqList &L3) 22 { 23 L3.length=L1.length+L2.length; 24 L3.elem=new ElemType[L3.length]; 25 ElemType* pa,*pb,*pc; 26 pa=&L1.elem[0]; 27 pb=&L2.elem[0]; 28 pc=&L3.elem[0]; 29 while(pa<L1.elem+L1.length&&pb<L2.elem+L2.length) 30 { 31 if(*pa<*pb) 32 {*pc=*pa;pa++;pc++;} 33 else 34 {*pc=*pb;pb++;pc++;} 35 } 36 while(pb<L2.elem+L2.length) 37 {*pc=*pb;pb++;pc++;} 38 while(pa<L1.elem+L1.length) 39 {*pc=*pa;pa++;pc++;} 40 } 41 42 43 44 void main() 45 { 46 SeqList L1,L2,L3; 47 ElemType a[100]={2,6,8}; 48 ElemType b[100]={1,3,5,7}; 49 InitSeq(L1,3,a); 50 InitSeq(L2,4,b); 51 DispSeq(L1);cout<<endl; 52 DispSeq(L2); 53 UnionSeq(L1,L2,L3); 54 cout<<endl; 55 DispSeq(L3); 56 }