python列表模拟堆栈和队列
对列特点:先进先出、后进后出
用列表insert、pop模拟进队出队:
1 >>> l = [] 2 >>> l.insert(0,'p1') # 索引0插入到列表最前面 3 >>> l.insert(0,'p2') 4 >>> l.insert(0,'p3') 5 >>> l 6 ['p3', 'p2', 'p1'] 7 >>> l.pop() # pop默认弹出最后一个元素 8 'p1' 9 >>> l.pop() 10 'p2' 11 >>> l.pop() 12 'p3'
用列表append、pop模拟进队出队:
1 >>> l = [] 2 >>> l.append('p1') # 加到列表最后 3 >>> l.append('p2') 4 >>> l.append('p3') 5 >>> l 6 ['p1', 'p2', 'p3'] 7 >>> l.pop(0) # 弹出索引0 8 'p1' 9 >>> l.pop(0) 10 'p2' 11 >>> l.pop(0) 12 'p3'
堆栈特点:先进后出、后进先出
用列表insert、pop方法模拟进栈出栈:
1 >>> l = [] 2 >>> l.insert(0,'a1') 3 >>> l.insert(0,'a2') 4 >>> l.insert(0,'a3') 5 >>> l 6 ['a3', 'a2', 'a1'] 7 >>> l.pop(0) 8 'a3' 9 >>> l.pop(0) 10 'a2' 11 >>> l.pop(0) 12 'a1'
用列表append、pop方法模式进栈出栈:
1 >>> l = [] 2 >>> l.append('a1') 3 >>> l.append('a2') 4 >>> l.append('a3') 5 >>> l 6 ['a1', 'a2', 'a3'] 7 >>> l.pop() 8 'a3' 9 >>> l.pop() 10 'a2' 11 >>> l.pop() 12 'a1'