Python实现基本数据结构---栈操作

本文介绍了一个使用Python实现的基本栈数据结构。通过定义一个Stack类,实现了栈的主要操作:push(压栈)、pop(出栈)、stackEmpty(判断是否为空)和stackFull(判断是否已满)。文章提供了一个简单的示例,演示了如何使用这个栈类进行基本的操作。
#! /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__':
    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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值