python常用的数据结构-栈(1)
2019-03-11
本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明: 本博客欢迎转发,但请保留原作者信息!
github地址:atanx
新浪微博:@蜀山掌门V
QQ:365039667
博客地址:江斌的博客
内容仅供学习参考,如有不当引用,请告知博主。
什么是栈
栈
是一种后进先出(LIFO)的数据结构。
栈的抽象数据类型
- S.push(e) #将一个元素入栈
- S.pop() #将一个元素出栈
- S.top() #不移除元素的情况下返回一个栈的栈顶元素
- S.is_empty() #判断栈是否为空
- len(S) #栈的长度
栈的Python实现
#!/usr/bin/env python
# coding=utf-8
#
# Copyright 2019, Bin Jiang
#
# s实现栈数据结构
from .error import EmptyError
class Stack(object):
def __init__(self):
self._data = []
def push(self, e):
""" 入栈一个元素 """
self._data.append(e)
def pop(self):
""" 出栈一个元素 """
if self.is_empty():
raise EmptyError('Stack is empty')
return self._data.pop()
def top(self):
""" 查看栈顶 """
if self.is_empty():
raise EmptyError('Stack is empty')
return self._data[-1]
def __len__(self):
return len(self._data)
def is_empty(self):
return len(self._data) == 0