a
list*/
#include
"stdlib.h"
#include
"stdio.h"
struct
list
{
int
data
struct
list
*next
}
typedef
struct
list
node
typedef
node
*link
void
main()
{
link
ptr,head
int
num,i
ptr=(link)malloc(sizeof(node))
ptr=head
printf("please
input
5
numbers==>\n")
for(i=0i<=4i++)
{
scanf("%d",&num)
ptr->data=num
ptr->next=(link)malloc(sizeof(node))
if(i==4)
ptr->next=NULL
else
ptr=ptr->next
}
ptr=head
while(ptr!=NULL)
{
printf("The
value
is
==>%d\n",ptr->data)
ptr=ptr->next
}
}
上面是一个简单的创建链表的C程序。所谓链表形象的讲就是一个数据块里面存有数据,并且存有下一个数据的指针,这样一个指一个形成一个数据链。这个数据链可以被操作,例如插入数据,删除数据,等。至于指令,首先定义一个结构体,它存有数据和指向下一个数据块的指针。然后分配空间。注意最后一个为NULL,当然你也可以指向开头一个数据块形成一个循环链表。
简单说来,就是通过指针指向,把两个结构体连接起来。比如定义下面这个结构体struct node
{
int data
struct node *next
}
可以看到结构体里面定义了一个自身类型的指针,通过让指针指向另外一个结构体,我们就能通过结构体里面的next变量访问下个结构体里面的内容,而通过下一个结构体,同样可以通过下一个结构体的next指向,找到下一个这种类型的结构体,这样就形成了所谓的链表。