前言: node
数组是最简单的数据机构,也就是顺序表,特色:简单粗暴,灵活性很差(固然能够使用柔性数组来弥补这一不足)。链表的出现就是为了解决数组灵活性不够问题,可是从根本上来讲,特色是同样的,都是用来存储数据。数组用得不少,下面主要介绍链表的使用。数组
链表分为单链表,双链表,循环链表。链表的每一个元素称为一个节点(node),每一个节点都包含两部分,第一部分是数据域,用来存储用户须要的数据data,第二部分是指针域,用来存储下一个节点的地址,也为称指向下一个节点的指针。 (头尾节点除外,链表的头指针指向第一个节点,链表的尾部指针域为NULL,不指向任何节点。)spa
链表中的每个节点都是同一种数据类型,很是特殊的一点就是结构体内的指针域的数据类型使用了未成功定义的数据类型,这是C语言中惟一规定能够先使用后定义的数据类型,如:指针
struct node { int data; struct node *next; };
例如,一个存放学生学号和成绩的节点:code
struct stu { int num; int score; struct stu *next; }