C语言 链表

Python023

C语言 链表,第1张

SLIST  *creatlist()

{

        SLIST   *head,*tail,*cnew

        head=NULL

int num

printf("输入数据(以-1结束):")

while(1)

{

 scanf("%d",&num)

 if(num==-1)//输入为-1表示输入结束

   break

 cnew=(SLIST*)malloc(sizeof(SLIST))

 cnew->data=num

 cnew->next=NULL

 if(head==NULL)//若为空则将头节点指向新节点

    head=cnew

 else

    tail->next=cnew//将当前节点的next指向新的节点

 tail=cnew

}

return head

}

void outlist(SLIST  *h)

{  

/*这里输出链表中各个数据*/

SLIST   *p

if(h==NULL)

{

printf("链表为空,没有数据\n")

return

}

printf("\n-----链表的数据元素------\n")

for(p=hp!=NULLp=p->next)

  printf("%d ",p->data)

printf("\n")

}

不知道 你为啥问两遍

实测编译通过   望采纳

简单说来,就是通过指针指向,把两个结构体连接起来。比如定义下面这个结构体

struct node

{

int data

struct node *next

}

可以看到结构体里面定义了一个自身类型的指针,通过让指针指向另外一个结构体,我们就能通过结构体里面的next变量访问下个结构体里面的内容,而通过下一个结构体,同样可以通过下一个结构体的next指向,找到下一个这种类型的结构体,这样就形成了所谓的链表。