上次说到队列有一个进口一个出口满足先进先出FIFO的原则,而栈的进口和出口是同一个,满足先进后出FILO的原则。出口这一端称为栈顶,而与出口相对的另一端称为栈底。
一、常用操作
通常利用Python中的列表List来实现栈Stack:
append():从右端(栈顶)添加元素
pop():从右端(栈顶)删除元素
s = ['a', 'b', 'c']
s.append('d')
print(s)---------------->['a', 'b', 'c', 'd']
s.pop()
print(s)---------------->['a', 'b', 'c']
还右len()、max()、min()函数在栈中也经常用到,这里就不细说了。
二、复杂度
访问Access:O(1)栈顶元素
搜索Search:O(N)
插入Insert:O(1)
删除Remove:O(1)栈顶元素