一、【定义】:
链表是内存当作零碎的内存的效组织,当内存足够但是内存中没我们需要的大小连续的内存块的时候,可以使用链表来利用内存的零碎的内存,代替连续内存块。分:静态链表和动态链表,主要还是研究动态链表。
二、【与数组的比较】:
具体列个表吧:
三、【链表的结构】:
链表元素常称为链表结点,每一个结点包含两个域:数据域和指针域。
数据域保存数据,指针域连接该结点到下一个结点,结点数据是一种复合类型,每一个结点占用一块存储单元,当要在链表中增加一个结点时,可动态地为该结点分配一个存储单元;当要在链表中删除一个结点时,也可释放该结点的存储单元。
四、【静态链表】:
#include <stdio.h>
typedef struct node
{
int data;
struct node * next;
}Node;
int main(void)
{
Node a;
Node b;
Node c;
a.data = 1;
b.data = 2;
c.data = 3;
a.next = &b;
b.next = &c;
c.next = NULL;
Node * head = &a;
while(head != NULL)
{
printf("data = %d\n",head->data);
head = head->next;
}
return 0;
}
静态链表的用处不大,像上面的例子还不如直接输入。
(下章讲动态链表)