BJFUOJ:奇偶链表的分割
#include<bits/stdc++.h>
using namespace std;
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*Linklist;
void InitLinklist(Linklist &l){
l = new Lnode;
l->next = NULL;
}
void CreatLinklist(Linklist &l,int n){
Linklist p = l;
Linklist r;
for(int i=0;i<n;i++){
r = new Lnode;
cin>>r->data;
r->next = p->next;
p->next = r;
p = r;
}
}
void Division(Linklist &l,Linklist &l1){
Linklist p = l,r = l->next;
Linklist q = l1;
int num = 1;
while(r){
if(num % 2 == 0){
q->next = r;
q = r;
}else{
p->next = r;
p = r;
}
num++;
r = r->next;
}
p->next = l1->next;
q->next = NULL;
}
void Out(Linklist &l){
Linklist p = l->next;
while(p->next){
cout<<p->data<<" ";
p = p->next;
}
cout<<p->data<<endl;
}
int main(){
while(1){
int n;
cin>>n;
if(n == 0) break;
Linklist l,l1;
InitLinklist(l);
InitLinklist(l1);
CreatLinklist(l,n);
Division(l,l1);
Out(l);
}
return 0;
}