#include
#include
#include
typedef int Elemtype;
typedef struct Lnode{
Elemtype data;
struct Lnode *next;
}Lnode, * Linklist;
Linklist linklist_creat()
{
Linklist head,p1,p2;
Elemtype n=1;
head=(Linklist)malloc(sizeof(Lnode));
p2=0;
p1=0;
while (n<=30)//建立一个无头节点的单链循环链表,共30个节点,每个节点的data域依次为1-30
{
if (n==1)
{
p1=head;
p1->data=1;
p1->next=head;
p2=p1;
}
else
{
p1=(Linklist)malloc(sizeof(Lnode));//先申请内存,获取分配的内存首地址后赋值给p1
p2->next=p1;
p2=p1;
p1->data=n;
}
n++;
}
p1->next=head;
return head;
}
void link_print(Linklist head)//输出整个链表中的每个节点的data域
{
int n;
Linklist p;
p=head;
n=1;
for(;n<=30;p=p->next)//n<=30
{
printf("%d,",p->data);
n++;
}
}
void main()
{
Linklist head=linklist_creat();
link_print(head);
}
