链表(列表)
链表类型的所有方法:
u a.append(x) 把元素x添加到链表结尾,相当于 a[len(a):] = [x]
u a.extend(L) 将列表L中所有元素都添加到列表a中,相当于 a[len(a):] = L
u a.insert(i,x) 将元素 x插入到列表索引为i的位置
u a.remove(x) 从列表a中删除元素x,如果没有x,返回ValueError
u a.pop([i]) 从链表的指定位置删除元素,并将其返回。如果没有指定索引, a.pop() 返回最后一个元素
u a.index(x) 返回列表a中第一个value = x的元素的索引,如果x不存在,返回ValueError
u a.count(x) 返回x在列表中出现的次数
u a.sort() 对列表元素进行顺序排序
u a.reverse() 对列表元素进行倒序排序
链表当做堆栈使用
u 堆栈的特点:后进先出
u list的append()方法可以将元素添加至堆栈顶,pop()方法可以将元素从栈顶释放,也就实现了后进先出
链表当做队列使用
u 队列作为特定的数据结构,最先进入的元素最先释放(先进先出)
u 方法1:
list的append()方法可以将元素添加至堆栈顶,pop(0)方法可以将元素从栈底释放,也就实现了先进先出
u 方法2:
使用 collections.deque ,它为在首尾两端快速插入和删除而设计
quque= deque(list)
queue.apend(x) //向队列顶部添加元素
quque.popleft() //删除队列底部的元素并返回该元素