//循环链表有头节点,头节点为空,尾部指向头节点
#define Elemtype int
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct Node
{
Elemtype data;
struct Node* next;
}Node,*Circlelist;
Circlelist InitCirclelist()//初始化循环链表
{
Circlelist L, p,q;
L=(Circlelist)malloc(sizeof(Node));
p=L;
int n;
cout<<"请输入循环链表结点数目:";
cin>>n;
int num;
for(int i=1;i<=n;i++)
{
cout<<"请输入结点:";
cin>>num;
q=(Circlelist)malloc(sizeof(Node));
q->data=num;
p->next=q;
p=q;
}
p->next=L;
cout<<"输入完毕"<<endl;
return L;
}
void Printlist(Circlelist L)//打印循环链表
{
Circlelist p,q;
p=L;
int i=1;
while(p->next!=L)
{
p=p->next;
cout<<"第"<<i<<"个结点数据为"<<p->data<<endl;
i++;
}
cout<<"打印完毕"<<endl;
}
int main()
{
Circlelist S;
S=InitCirclelist();
Printlist(S);
}