列表与链表
1.列表创建刚开始是开辟了连续的空间而且连续空间的大小是一定的,插入和删除需要移动更多的元素。
列表的常用方法是append与pop,都是从尾部进行操作
链表不需要开辟连续的空间,只需要改变指针。所以它的插入与删除是常数时间。
2.列表应用场景:批量处理数据,动态调整元素个数,大部分时间是被读取切片。天然实现栈操作。
链表应用场景:频繁的插入删除元素,对线性表的长度难以估计。
列表实现栈(头部作为栈顶):
class Stack:
def __init__(self):
self.items=[]
def isEmpty(self):
return self.items==[]
def push(self,item):
self.items.insert(0,item)
def pop(self):
self