一、链表
数组提供集中的表示法,用一块连续的内存为元素提供存储和引用;
链表提供分布式的表示法,使用被称为节点的轻量级对象,来维护链表中的每个元素和序列顺序。
- 节点:每个节点维护一个指向它的元素的引用,维护一个或多个指向相邻节点的引用
二、单链表
1、单链表的节点
单链表节点维护两个引用
- 元素成员:引用一个序列中的一个元素对象
- 指针域成员:指向该节点的后继节点
头节点(head) 和 尾节点(tail) 标识序列中第一个节点和最后一个节点
当序列不为空时,从头节点开始,通过每个节点的next
引用,即可从这个节点移动到下一个节点,从未到达序列的尾节点(当节点的next
引用为空时,这个节点即为尾节点)。 此过程叫“遍历”链表或“链接跳跃”、“指针跳跃”。
当序列为空时,头节点只是一个形式,头节点的元素和指针域都指向None,此时头节点即尾节点。
2、单链表的结构
链表在内存中的表示依赖许多对象的协作,至少需要维护以下2个对象
- 一个代表整个链表的对象:一个指向链表头节点的引用