Python实现基本数据结构中栈的操作示例

yipeiwu_com6年前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 "【听图阁-专注于Python设计】测试结果:"
  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()

运行结果:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python松散正则表达式用法分析

本文实例讲述了Python松散正则表达式用法。分享给大家供大家参考,具体如下: Python 允许用户利用所谓的 松散正则表达式来完成这个任务。一个松散正则表达式和一个紧凑正则表达式主要...

python检查序列seq是否含有aset中项的方法

本文实例讲述了python检查序列seq是否含有aset中项的方法。分享给大家供大家参考。具体实现方法如下: # -*- coding: utf-8 -*- def contains...

python3+PyQt5重新实现自定义数据拖放处理

python3+PyQt5重新实现自定义数据拖放处理

本文分成两部分,第一部分通过python3+PyQt5实现自定义数据的拖放操作。第二部分则对第一部分的程序进行修改,增加拖放操作时,菜单提示是否移动或拷贝,还有可以通过ctrl键盘来设置...

python实现多线程的两种方式

目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一...

Python中property函数用法实例分析

本文实例讲述了Python中property函数用法。分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符...