特点:

1、动态结构,整个内存空间为多个链表共用,空间可连续可不连续
2、不需要预先分配空间
3、链接域需要占用额外存储空间,相对顺序存储存储密度较小
4、不能随机存储,查找速度慢

结构:

数据域:数据元素本身的信息
链接域:直接后继或直接前驱的存储地址

分类:

单链表:每个节点除包含有数据域外,另有一个链接域,指向其直接后继节点
单链表 - 图1
双链表:每个节点除包含有数据域外,另有两个链接域,分别指向其直接前驱节点和后继节点
单链表 - 图2

表示:

单链表 - 图3

  1. class Node: # 常见节点
  2. def __init__(self,data): # 初始化
  3. self.data=data # data为要输入的数据
  4. self.next=None # next为直接后继的地址

操作:

List(self) 构造表,创建新表
is_empty(self) 判断是否为空
len(self) 求长度
prepend(self.elem) 头插法
append(self,elem) 尾插法
insert(self,elem,i) 指定位置插入
del_first(self) 删除第一个元素
del_last(self) 删除最后一个元素
del(self,i) 按照位置删除
search(self,elem) 搜索元素所在的位置
forall(self.op) 执行表中的每个元素