本文共 1180 字,大约阅读时间需要 3 分钟。
栈(stacks)是一种只能通过访问其栈尾来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。
下面是python实现栈的代码:#!/usr/bin/python#coding=utf-8class Stack(object) : def __init__(self,size): #类的构造函数 self.size = size self.stack = [] def __str__(self): #类的字符串输出方法,类似于java的.toString()方法 return str(self.stack) def getSize(self) : #获取栈当前大小 return len(self.stack) def push(self, x) : #入栈,栈满抛异常 if self.isfull() : #return -1 raise Exception("Stack is full") self.stack.append(x) def pop(self) : #出栈,栈空抛异常 if self.isempty() : #return -1 raise Exception("Stack is empty") topElement = self.stack[-1] self.stack.remove(topElement) return topElement def isempty(self) : #判断栈空 if len(self.stack) == 0 : return True return False def isfull(self) : #判断栈满 if len(self.stack) == self.size : return True return False
下面是模块内的测试代码:
if __name__ == '__main__' : stackTest = Stack(10) for i in range(10) : stackTest.push(i) print stackTest.getSize() print stackTest.isempty() print stackTest.isfull() print stackTest for i in range(6) : stackTest.pop() print stackTest.getSize() print stackTest
测试结果:
转载地址:http://ucmdi.baihongyu.com/