#includeusing namespace std; #include typedef int ElemType; typedef struct LNode { ElemType data; struct LNode* next; }LNode,*LinkList; void InitList(LinkList &L) { L=new LNode;//或L=(LinkList)malloc(sizeod(LNode)); L->next=NULL; } void CreateList(LinkList &L,int n)//尾插法 { int i; LinkList p,r; r=L; for(i=1;i<=n;i++) { p=new LNode; cin>>p->data;//scanf(&p->data); p->next=NULL; r->next=p; r=p; } } void MergeList(LinkList L1,LinkList L2,LinkList &L3) { LinkList a,b,c,s; a=L1->next;b=L2->next;c=L3; while(a&&b) { if(a->data data) { s=new LNode;//新建结点s s->data=a->data; c->next=s;//接在L3尾指针后 c=s; a=a->next; } else { s=new LNode;//新建结点s s->data=b->data; c->next=s;//接在L3尾指针后 c=s; b=b->next; } } if(a)c->next=a; if(b)c->next=b; } void PrintList(LinkList L) { LinkList p; p=L->next; while(p){ cout< data<<" "; p=p->next; } } int main() { int m,n; LinkList L1,L2,L3; InitList(L1); InitList(L2); InitList(L3); cout<<"第一个有序表有几个元素:"; cin>>m; cout<<"请依次输入第一个有序表元素:"; CreateList(L1,m); cout<<"第二个有序表有几个元素:"; cin>>n; cout<<"请依次输入第二个有序表元素:"; CreateList(L2,n); MergeList(L1,L2,L3); cout<<"合并后的有序表:"; PrintList(L3); }
运行结果:
暑期编程PK赛 得CSDN机械键盘等精美礼品!



