python数据结构之栈
来源:互联网 发布:vs2013写c语言 编辑:程序博客网 时间:2024/06/07 21:13
一 介绍
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。
二 封装一个堆栈类
# 简单的堆栈模块
classPyStack:
def __init__(self,size =20):
self.stack =[]
self.size = size
self.top =-1
def setsize(self,size):
self.size = size
def push(self,element):
if self.isFull():
raiseStackException('PyStackOverflow')
else:
element = self.stack.append(element)
self.top = self.top +1
def pop(self):
if self.isEmpty():
raiseStackException('PyStackUnderflow')
else:
element = self.stack[-1]
self.top = self.top -1
del self.stack[-1]
return element
defTop(self):
return self.top
def empty(self):
self.stack =[]
self.top =-1
def isEmpty(self):
if self.top ==-1:
returnTrue
else:
returnFalse
def isFull(self):
if self.top == self.size -1:
returnTrue
else:
returnFalse
classStackException(Exception):
def __init__(self,data):
self.data = data
def __str__(self):
return self.data
if __name__ =='__main__':
stack =PyStack()
for i in range(10):
stack.push(i)
print(stack.Top())
for i in range(10):
print(stack.pop())
stack.empty()
for i in range(21):
stack.push(i)#此处将引发异常
三 运行结果
9
9
8
7
6
5
4
3
2
1
0
Traceback (most recent call last):
File "E:\python\work\PyStack.py", line 54, in <module>
stack.push(i) #此处将引发异常
File "E:\python\work\PyStack.py", line 11, in push
raise StackException('PyStackOverflow')
StackException: PyStackOverflow
阅读全文
0 0
- python数据结构之栈
- python数据结构之栈
- python 数据结构三 之 栈与队列
- python数据结构之栈与队列
- Python数据结构之图
- Python数据结构之注意事项
- Python之列表数据结构
- Python数据结构之序列
- python数据结构之字符串
- python数据结构之列表
- Python数据结构之序列
- python数据结构之字典
- python数据结构之字典
- python数据结构之字典
- python数据结构之集合
- python数据结构之字符串
- Python数据结构之单链表
- Python数据结构之哈夫曼树
- ffmpeg 错误系统
- Python的dir()函数
- 下拉菜单从数据库读取数据动态生成
- 十条jQuery代码片段助力Web开发效率提升
- python数据结构之表
- python数据结构之栈
- C++ XXTEA分组加密解密算法
- IM云通信行业步入快车道,融云或将和Twilio一样实现资本上市
- Git常用命令记录
- python数据结构之队列
- 如何参与一个GitHub开源项目?
- SSH命令详解
- 用python的列表构建一棵树
- 项目中遇到使用biee12c开发