#include<iostream>
#include<stdlib.h>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void showList(LinkList L)
{
LinkList q;
q=L->next;
while(q)
{
if(q->next==NULL)
cout<<q->data<<endl;
else
cout<<q->data<<" ";
q=q->next;
}
}
void DivideList(LinkList La)
{
LinkList Lb,Lc,p,tail1,tail2,t;
int a=0,b=0;
Lb=new LNode;
Lb->next=NULL;
tail1=Lb;
Lc=new LNode;
Lc->next=NULL;
tail2=Lc;
p=La->next;
while(p!=NULL)
{
t=new LNode;
t->next=NULL;
t->data=p->data;
if((t->data)%2==0)
{
tail1->next=t;
tail1=t;
a++;
}
else
{
tail2->next=t;
tail2=t;
b++;
}
p=p->next;
}
cout<<a<<" "<<b<<endl;
showList(Lb);
showList(Lc);
}
void CreateList_L(LinkList &La,int n)
{
LinkList p;
La=new LNode;
La->next=NULL;
LinkList q=La;
for(int i=1;i<=n;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
q->next=p;
q=p;
}
DivideList(La);
}
int main()
{
int n;
cin>>n;
LinkList La;
CreateList_L(La,n);
return 0;
}
SDUTOJ 2120数据结构实验之链表五:单链表的拆分
最新推荐文章于 2019-01-15 09:54:08 发布