Python 是一种面向对象解释型计算机程序设计语言, 由 Guido van Rossum 于 1989 年底发明, 第一个公开发行版发行于 1991 年 Python 语法简洁而清晰, 具有丰富和强大的类库它常被昵称为胶水语言, 它能够把用其他语言制作的各种模块 (尤其是 C/C++) 很轻松地联结在一起
这篇文章主要介绍了 Python 实现基本数据结构中栈的操作, 包括基于 Python 实现栈的定义入栈出栈判断栈空或栈满等情况, 需要的朋友可以参考下
本文实例讲述了 Python 实现基本数据结构中栈的操作分享给大家供大家参考, 具体如下:
- #! /usr/bin/env python
- #coding=utf-8
- #Python 实现基本数据结构 --- 栈操作
- class Stack(object):
- def __init__(self,size):
- self.size = size
- self.stack = []
- self.top = 0# 初始化, top=0 时则为空栈
- def push(self,x):
- if self.stackFull():# 进栈之前检查栈是否已满
- raise Exception("overflow !")
- else:
- self.stack.append(x)
- self.top=self.top+1#push 进去的第一个元素下标为 1
- def pop(self):
- if self.stackEmpty():
- raise Exception("underflow !")
- else:
- self.top=self.top-1
- return self.stack.pop()# 利用 Python 内建函数 pop()实现弹出
- def stackEmpty(self):
- if self.top == 0:# 判断栈空
- return True
- else:
- return False
- def stackFull(self):
- if self.top == self.size:# 判断栈满!!!
- return True
- else:
- return False
- if __name__ == '__main__':
- print "PHPERZ 测试结果:"
- s=Stack(10)
- for i in range(3):
- s.push(i)
- print s.stack
- print s.pop()
- print s.stack
- print s.pop()
- print s.pop()
- print s.stack
- print s.stackEmpty()
- print s.stackFull()
- for i in range(10):
- s.push(i)
- print s.stackFull()
运行结果:
来源: http://www.phperz.com/article/18/0218/361493.html