python 实现栈的基本操作

本文介绍了如何使用Python列表实现栈的基本操作,包括栈的初始化、判断栈满和空、入栈(push)、出栈(pop)以及显示栈内容的方法,并通过实例演示了栈的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈:是一个先入后出的有序列表  线性表。

栈的删除和插入只能在一端进行,允许插入和删除的一端为栈顶,另一端称为栈底

最先放进栈中的元素在栈顶,最先取出

Python 中的栈直接以列表为主,增加使用append(),出栈为pop()

 

实现栈的思路分析:

  1. 使用数组来记性模拟栈
  2. 定义一个top来代表栈顶,初始化-1
  3. 入栈的操作,当有数据加入的时候,top++,stack[top] = data
  4. 出栈的操作,value = stack[top] top— return value

class ArrayStack:
    def __init__(self,masSize):
        self.maxsize = masSize
        self.stack = []
        self.top = -1

    # 判断栈是不是 满的
    def isFull(self):
        return self.top == self.maxsize - 1

    # 判断栈是不是空的
    def isEmpty(self):
        return self.top == -1

    # 将数据压入栈中
    def push(self,value):
        if self.isFull():
            print("栈已经满了!")
            return
        self.top = self.top + 1
        self.stack.append(value)

    # 将栈中的数据进行删除
    def pop(self):
        if self.isEmpty():
            print("栈已经是空的了,没法执行出栈操作!")
            return
        value = self.stack.pop()
        self.top = self.top - 1
        return value

    # 显示栈的内容,需要先从栈顶显示数据
    def showStack(self):
        if self.isEmpty():
            print("栈已经是空的了,没法执行显示操作!")
            return
        i = self.top
        while i > -1:
            print("栈中存在的数据:",self.stack[i])
            i = i -1

if __name__ == '__main__':
    array = ArrayStack(5)
    print("栈的情况:",array.isEmpty())
    print("栈的情况:", array.isFull())
    array.push(2)
    array.push(3)
    array.push(4)
    array.push(5)
    array.push(6)
    #array.push(7)
    array.showStack()
    array.pop()
    array.showStack()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值