c语言创建循环单链表并判断链表不为空
在这里插入代码片
#include "stdio.h"
#include "malloc.h"
typedef struct node
{
int data;
struct node *next;
}asd;
asd *phead=NULL;//头指针为空
asd *pend=NULL;//尾指针
int start(asd *l)
{
l=(asd *)malloc(sizeof(asd));
l->next=NULL;
return l;
}
void creat(asd *l,int n)
{
asd *p;
int i,j;
printf("输入元素:\n");
for(i=0;i<n;i++)
{
scanf("%d",&j);
p=(asd *)malloc(sizeof(asd));
p->data=j;
p->next=l->next;
l->next=p;
}
}
void print(asd *l)
{
while(l->next!=NULL)
{
printf("%d\t",l->next->data);
l=l->next;
}
}
int xunhuan(asd *l)
{
phead=l->next;//令头指针指向第一个结点
while(l->next!=NULL)
{
l=l->next;
}
pend=l;//令尾指针指向最后一个结点
pend->next=phead;
if(phead->next!=phead)
{
printf("成功!!!\n");
printf("链表不为空\n");
}
return 0;
}
int main()
{
asd *l,*m;
m=start(m);
creat(m,3);
printf("输出元素:\n");
print(m);
printf("\n");
xunhuan(m);
return 0;
}