Python-栈
来源:互联网 发布:中国知网数据库查重 编辑:程序博客网 时间:2024/06/06 03:42
一.
class Stack(object): """docstring for Stack""" def __init__(self, size): self.stack = [] self.size = size self.top = -1 def push(self,content): if self.full(): print("stack is full") else: self.stack.append(content) self.top = self.top + 1 def pop(self,content): if self.empty(): print("stack is empty") else: self.top = self.top - 1 def empty(self): if self.top == -1: return True else: return False def full(self): if self.top == self.size: return True else: return Falsestack = Stack(9)# stack.push(3)stack.pop(3)print(stack.empty())
1.首先定义一个Stack类
初始化这个类,定义self.stack为列表,然后我们在给他添加条件,因为列表是任何位置都可以取元素,而栈是FILO结构.
2.判断栈是否空或者满
空的话就是self.top == -1,满的话就是top指针和栈大小相同,即self.top == self.size
def empty(self):def full(self):
3.进栈操作如下
def push(self,content): if self.full(): print("stack is full") else: self.stack.append(content) self.top = self.top + 1
先判断是否满,如果满就放不下了,不满的话,列表追加一个元素,就是我们传进去的content,然后top指针再加1,再赋给self.top,相当于self.top++
注意Python中没有self.top++这种操作,但可以self.top+=1或者相应的self.top-=1
4.出栈操作如下
def pop(self,content): if self.empty(): print("stack is empty") else: self.top = self.top - 1
self.top减去1,然后再赋给self.top
二.
class Stack(): def __init__(self): self._elems = [] def is_empty(self): return self._elems == [] def top(self): if self._elems == []: print("Stack is empty") return -1 def push(self,elem): self._elems.append(elem) def pop_(self): if self._elems == []: print("Stack is empty") #删除并返回最后一个元素,即删除的元素 return self._elems.pop()stack = Stack()stack.push(3)stack.push(5)while not stack.is_empty(): print(stack.pop_())
阅读全文
0 0
- 【python】python实现栈
- python 栈
- python 栈 ~
- python栈
- Python-栈
- 栈 python
- [Python]python算法入门 -- 栈(stack)
- 用Python实现栈
- Python队列、栈学习
- Python 实现栈
- Python的栈
- Python 实现栈
- python栈的实现
- python中的队列、栈
- Python 栈和队列
- python全栈
- Python数据结构—-栈
- Python数据结构--栈
- 沃顿商学院自我管理课
- HDU-6073 Matching In Multiplication(拓扑+dfs)
- 动态代理技术在JavaWeb中的应用
- 暑假多校联盟(=) e题 书架
- P3144 [USACO16OPEN]关闭农场Closing the Farm
- Python-栈
- web自动化测试第12步:selenium中下拉框的解决方法(Select)
- More is better HDU
- MySql主从同步和延迟同步
- 2017.8.4——。。。。。
- HTML第三天
- 电池-外部DC双电源供电设备电源自动切换电路分享(下)
- 【HDU 6070 Dirt Ratio】 二分 & 线段树
- 诈金花