链表是由许多相同的数据类型的数据项按照特定的顺序排列而成的线性表,链表的特点是各个数据项在计算机内存中位置是不连续而且随机存放的,其优点是数据的插入或者删除都相当方便,有新数据加入就向系统申请一块内存空间,而数据被删除后,就可以把这块内存空间还给系统,加入和删除都不需要移动大量的数据,其缺点就是设计数据结构时较为麻烦,并且在查找数据时,也无法像静态数据那样可随机读取数据,必须按顺序查找该数据为止.
日常生活中有许多链表的抽象应用,例如可以把"单向链表"想象成火车,有许多人就挂载多少节车厢,当节假日人多时,需要较多车厢是就可以多挂些车厢,人少时就把车厢数量较少,十分具有弹性.
在动态分配内存空间时,最常用的就是"单向链表", 一个单向链表节点基本上是由数据字段和指针两个元素所组成的, 指针将会指向下一个元素在内存中的地址,
如下:
在"单向链表"中第一个节点是链表头指针,指向最后一个节点的指针设为 None, 表示他是 "链表尾", 不指向任何地方, 例如,列表A= {a, b, c, d, x};,其单向列表的数据结构