栈
栈是最简单的数据结构,也是最重要的数据结构。它的原则就是后进先出(LIFO),栈被使用于非常多的地方,例如浏览器中的后退按钮,文本编辑器中的撤销机制,接下来我们用Python来具体实现这个数据结构。
Python实现
栈中的方法
作为一个栈(用S来表示),最基本的方法有下面几个:
S.push(e): 将元素e添加到S的栈顶
:
:
self._data = []
:
len(self._data)
:
len(self._data) ==
:
self._data.append(e)
:
self.is_empty():
Empty()
self._data.pop()
:
self.is_empty():
Empty()
self._data[-]
其中pop与top方法中对于空栈时报的异常是我们自定义的:
:
因为列表对于这种情况会产生IndexError,但这个异常与栈并不是很符合,所以我们使用了自定义的异常
简单分析
由于Python是一门动态语言,与一些其他的语言相比,栈中的元素类型可以不一样,所以栈在Python中的使用很灵活,但也有可能会因此使程序理解起来更复杂,如果想要实现这种要求严格的栈类型,可以使用基于array模块中的紧凑数组实现
我们栈中的push方法是利用列表中的append方式实现的,那么列表中的这种动态增加长度的方式我们是有必要了解一下的,先看一个例子:
sys
data = []
_ range():
a = len(data)
b = sys.getsizeof(data)
print(.format(a,b))
data.append()