一个简单的链表赋值求解决
#include<stdio.h>#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}list , *plist;plist init(void)
{
plist h;
h=(plist)malloc(sizeof(list));
if(h)
h->next=NULL;
return h;
}
plist creat(plist h, int i)//创建一个有5个结点构成的单链表
{
plist p,r;
r=h;
p=(plist)malloc(sizeof(list));
int j=0,x;
for(;j<i;j++)
{
scanf("%d",&x);
p->data=x;
r->next=p;
r=p;
}
return h;
}
int main()
{
plist p,h;
h=init();
p=creat(h,5);//要输入5个数
while(p)
{
p=p->next;
printf("%d",p->data);
}
return 0;
}
不明白那错了,为什么是无限循环,求高手指点一下