- 多数据类型顺序表的内存图(内存非连续开辟)
- 顺序表的弊端:顺序表的结构需要预先知道数据大小申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁。
链表
相对于顺序表,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理且进行扩充时不需要进行数据搬迁。
链表是一种常见的数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是每一个结点(数据存储单元)里面存放下一个结点的信息(即地址)
- is_empty():链表是否为空
- length():链表长度
- travel():遍历整个链表
- add(item):链表头部添加元素
- append(item):链表尾部添加元素
- insert(pos,item):指定位置添加元素
- removw(item):删除节点
- search(item):查找结点是否存在
class Node():
def __init__(self,item):
self.item = item
self.next = None
class Link():
def __init__(self):
#构造一个空链表
#_head存储的只能是空或者是第一个节点的地址
self._head = None
#向链表的头部插入一个节点
def add(self,item):
#创建一个新的节点
node = Node(item)
node.next = self._head
self._head = node
link = Link()
link.add(3)
link.add(4)