#include<iostream>
#include<stdlib.h>
using namespace std;
struct LNode
{
int val;
LNode* next;
};
LNode *L1=new LNode,*L2=new LNode;
LNode *r1=L1,*r2=L2,*pa,*pb;//尾插法,开始时头和尾结点是同一个
void helper(LNode* L){
while(L){
if(L->val%2==0){
pa=new LNode;
pa->val=L->val;
r1->next=pa;
r1=pa;
}
else{
pb=new LNode;
pb->val=L->val;
r2->next=pb;
r2=pb;
}
L=L->next;
}
r1->next=NULL,r2->next=NULL;
L1=L1->next,L2=L2->next;
}
void read(LNode* p){
while (p)
{
cout<<p->val<<" ";
p=p->next;
}
cout<<endl;
}
int main()
{
LNode* L=new LNode;
LNode *p,*r=L;
int a[8]={1,2,3,6,7,8,9,11};
for(int i=0;i<8;i++){
//head=(LNode*)malloc(sizeof(LNode));//或者用下面的写法新建一个结点,二选一
p=new LNode;
p->val=a[i];
r->next=p;
r=p;
}
r->next=NULL;
L=L->next;
helper(L);//将单链表分别分为奇数和偶数单链表
read(L1);
read(L2);
read(L);
return 0;
}
18xue_3
于 2020-12-27 17:47:48 首次发布