Python的栈

来源:互联网 发布:linux get命令 ftp 编辑:程序博客网 时间:2024/06/08 13:36

Python的栈

堆栈-先进后出,后进先出

# -*- coding:utf-8 -*-'''定义一个堆栈'''import sysclass 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 =  1Stack =  ['Hello']Top Value =  1 SizeOfStack =  2Stack =  ['Hello', 'Python']Top Value =  2 Stack Full?  FalseSizeOfStack =  3Stack =  ['Hello', 'Python', 'P']Top Value =  3 Stack Full?  FalseSizeOfStack =  4Stack =  ['Hello', 'Python', 'P', 'y']Top Value =  4 Stack Full?  FalseSizeOfStack =  5Stack =  ['Hello', 'Python', 'P', 'y', 't']Top Value =  5 Stack Full?  FalseSizeOfStack =  6Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h']Top Value =  6 Stack Full?  FalseSizeOfStack =  7Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h', 'o']Top Value =  7 Stack Full?  FalseSizeOfStack =  8Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h', 'o', 'n']Top Value =  8 SizeOfStack =  8Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h', 'o', 'n']Top Value =  8 SizeOfStack =  7Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h', 'o']Top Value =  7 SizeOfStack =  6Stack =  ['Hello', 'Python', 'P', 'y', 't', 'h']Top Value =  6 Stack Empty?  NoneSizeOfStack =  5Stack =  ['Hello', 'Python', 'P', 'y', 't']Top Value =  5 Stack Empty?  NoneSizeOfStack =  4Stack =  ['Hello', 'Python', 'P', 'y']Top Value =  4 Stack Empty?  NoneSizeOfStack =  3Stack =  ['Hello', 'Python', 'P']Top Value =  3 Stack Empty?  NoneSizeOfStack =  2Stack =  ['Hello', 'Python']Top Value =  2 Stack Empty?  NoneSizeOfStack =  1Stack =  ['Hello']Top Value =  1 Stack Empty?  NoneSizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 Stack Empty?  Stack if empty.TrueStack if empty.Stack is empty.SizeOfStack =  0Stack =  []Top Value =  0 SizeOfStack =  0Stack =  []Top Value =  0 
0 0
原创粉丝点击