Python的栈
2016-01-02 21:07
591 查看
Python的栈
堆栈-先进后出,后进先出# -*- coding:utf-8 -*- ''' 定义一个堆栈 ''' import sys class Stack(object): def __init__(self,size): #初始化栈的大小、栈顶 self.stack = [] #定义一个空的列表作为栈 self.size = size #初始化栈的大小 self.top = len(self.stack) #初始化栈顶的值为栈的长度:对于一个空栈而言,栈顶的值等于栈的长度值 #判断栈满 def full(self): if self.size == self.top: print "Stack is full.Forbidden to push any item into it." return True else: return False #判断栈空 def empty(self): if self.top == 0: print "Stack if empty." return True #入栈操作 def push(self,content): if self.full(): print "Stack if full." else: self.top += 1 self.stack.append(content) #出栈操作 def out(self): if self.empty(): raise ValueError("Stack is empty.") else: self.stack.pop() #删除栈顶元素 self.top -= 1 def display(self): print "SizeOfStack = ",len(self.stack) print "Stack = ",self.stack print "Top Value = ",self.top,"\n" #测试 s = Stack(20) s.push("Hello") s.display() s.push("Python") s.display() for i in "Python": print "Stack Full? ",s.full() s.push(i) s.display() s.display() s.out() s.display() s.out() s.display() for i in range(12): print "Stack Empty? ",s.empty() s.out() s.display() s.display()
运行结果: SizeOfStack = 1 Stack = ['Hello'] Top Value = 1 SizeOfStack = 2 Stack = ['Hello', 'Python'] Top Value = 2 Stack Full? False SizeOfStack = 3 Stack = ['Hello', 'Python', 'P'] Top Value = 3 Stack Full? False SizeOfStack = 4 Stack = ['Hello', 'Python', 'P', 'y'] Top Value = 4 Stack Full? False SizeOfStack = 5 Stack = ['Hello', 'Python', 'P', 'y', 't'] Top Value = 5 Stack Full? False SizeOfStack = 6 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h'] Top Value = 6 Stack Full? False SizeOfStack = 7 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h', 'o'] Top Value = 7 Stack Full? False SizeOfStack = 8 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h', 'o', 'n'] Top Value = 8 SizeOfStack = 8 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h', 'o', 'n'] Top Value = 8 SizeOfStack = 7 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h', 'o'] Top Value = 7 SizeOfStack = 6 Stack = ['Hello', 'Python', 'P', 'y', 't', 'h'] Top Value = 6 Stack Empty? None SizeOfStack = 5 Stack = ['Hello', 'Python', 'P', 'y', 't'] Top Value = 5 Stack Empty? None SizeOfStack = 4 Stack = ['Hello', 'Python', 'P', 'y'] Top Value = 4 Stack Empty? None SizeOfStack = 3 Stack = ['Hello', 'Python', 'P'] Top Value = 3 Stack Empty? None SizeOfStack = 2 Stack = ['Hello', 'Python'] Top Value = 2 Stack Empty? None SizeOfStack = 1 Stack = ['Hello'] Top Value = 1 Stack Empty? None SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 Stack Empty? Stack if empty. True Stack if empty. Stack is empty. SizeOfStack = 0 Stack = [] Top Value = 0 SizeOfStack = 0 Stack = [] Top Value = 0
相关文章推荐
- Android Native 绘图方法
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例