#include<stdio.h>
typedef struct dulnode
{
int data;
struct dulnode *prior;
struct dulnode *next;
}dulnode,*dulinklist;
void initdl(dulinklist &L)//循环双链表初始化函数(带头结点)
{
L=new dulnode;
L->prior=L;
L->next=L;
}
void creatdl(dulinklist &L,int n)//循环双链表创建函数
{
dulnode *r,*s;
r=L;
int e;
for(int i=1;i<=n;i++)
{
s=new dulnode;
printf("请输入值\n");
scanf("%d",&e);
s->data=e;
s->next=r->next;
L->prior=s;
r->next=s;
s->prior=r;
r=s;
}
}
void outputdl(dulinklist L)//循环双链表输出函数
{
dulnode *p;
p=L->next;
while(p!=L)
{
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
int n;
dulinklist L;
initdl(L);//初始化带头结点的双循环链表
printf("链表初始化成功\n");
printf("请输入链表长度 ");
scanf("%d",&n);
creatdl(L,n);
printf("链表创建成功\n");
outputdl(L);
return 0;
}