链表是一种非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针实现的。
链表由一系列结点组成,每个结点包括两个部分:数据域、指针域。
提到链表,就不能不提数组。正是数组的缺点,才彰显了链表的价值。
数组缺点:
数组的大小要事先规定;
数组的空间可能存在浪费;
数组的插入和删除操作消耗很多资源。
链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理,但是链表失去了数组随机读取的优点。
单向链表
单向链表有一个头结点head,指向链表在内存中的首地址。每一个节点的数据类型是结构体类型。
无论访问哪一个节点,都需要从链表头开始顺序地向后查找。链表的尾节点的指针域为NULL。