例题2-8:设L为一带头节点的循环单链表,链表中存储一组无序的整数。请设计算法,将链表中结点分成一个奇数链和一个偶数链的带有头结点的循环单链表,分别由P,Q指向;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#define LElemType int
#define inf 0x3f3f3f3f
using namespace std;
typedef struct CLNode{
LElemType data;
struct CLNode * next;
CLNode(LElemType Data=inf,CLNode *Next=NULL){
data=Data;
next=Next;
}
}CLNode , *CLinkList ;
void InitCLinkList(CLinkList &L){
L=new CLNode;
L->next=L;
}
void CreateCLinkList_Tail(CLinkList &L,int n=0){
L=new CLNode;
CLinkList Pre=L,p;
LElemType Data;
for(int i=1;i<=n;i++){
printf("请输入第%d个data值:\n",i);
cin>>Data;
p=new CLNode(Data,L);
Pre->next=p;
Pre=p;
}
}
void CreateCLinkList_Head(CLinkList &L,int