C和指针——使用结构和指针

链表:链表(linked list)就是一些包含数据的独立数据结构(通常称为节点)的集合。链表中的每个节点通过链或指针连接在一起。程序通过指针访问链表中的节点。

单链表:在单链表中,每个节点包含一个指向链表下一个节点的指针。链表最后一个节点的指针字段的值为NULL,提示链表后面不再有其他节点。为了记住链表的起始位置,可以使用一个根指针(root pointer)。根指针指向链表的第一个节点。注意根指针只是一个指针,它不包含任何数据。单链表可以通过链从开始位置遍历链表直到结束位置,但链表无法从相反的方向进行遍历。单链表是一种使用指针来存储值的数据结构。

把一个新节点链接到一个有序的单链表中需要两个步骤:首先,新节点的link字段必须设置为指向它的目标后续节点。其次,前一个节点的link字段必须设置为指向这个新节点。

双链表:在一个双链表中,每个节点都包含两个指针——指向前一个节点的指针和指向后一个节点的指针。

为了把一个新节点插入到双链表中,必须修改四个指针。新节点的前向和后向link字段必须被设置,前一个节点的后向link字段和后一个字节的前向link字段必须进行修改,使它们指向这个新节点。