您的位置:首页 > 编程语言 > Python开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python class