您的位置:首页 > 理论基础 > 数据结构算法

SDUTOJ 2119 数据结构实验之链表四:有序链表的归并

2014-10-05 17:15 417 查看
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode ,*LinkList;
void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)
{
LinkList pa,pb,pc;
pa=La->next;
pb=Lb->next;
Lc=pc=La;
while(pa&&pb)
{
if(pa->data<=pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(Lb);
}
void CreateList_L(LinkList &L,int n)
{
LinkList p;
L=new LNode;
L->next=NULL;
LinkList q=L;
for(int i=1;i<=n;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
q->next=p;
q=p;
}
}
void show(LinkList L)
{
LinkList p;
p=L->next;
while(p)
{
if(p->next==NULL)
cout<<p->data<<endl;
else
cout<<p->data<<" ";
p=p->next;
}
}
void mergelist()
{
LinkList La,Lb,Lc;
int a,b;
cin>>a>>b;
CreateList_L(La,a);
//show(La);
CreateList_L(Lb,b);
//show(Lb);
MergeList(La,Lb,Lc);
show(Lc);
}
int main()
{
mergelist();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构