用python实现有getMin()功能的栈

算法1.用python实现有getMin()功能的栈

class Stack:
def init(self):
self.item = []

def push(self, item):
    self.item.append(item)

def pop(self):
    if len(self.item) == 0:
        return "your stack is empty"
    else:
        self.item.pop()

def peek(self):
    return self.item[len(self.item) - 1]
def all(self):
    return self.item[:]

class MyStack1(Stack):
def init(self):
self.stackData = Stack()
self.stackMin = Stack()

def push(self, num):
    if len(self.stackMin.item) == 0:
        self.stackMin.push(num)
    elif num <= self.getmin():
        self.stackMin.push(num)

    self.stackData.push(num)

def pop(self):
    if len(self.stackData.item) == 0:
        return "the stackdata is empty"
    value=self.stackData.item.pop()
    if ( value == self.getmin()):
        self.stackMin.item.pop()





def getmin(self):
    if len(self.stackMin.item) == 0:
        return "the stackmin is empty"
    return self.stackMin.peek()

s = MyStack1()
s.push(3)
s.push(4)
s.push(5)
s.push(1)
s.push(2)
s.push(1)
print(‘stackdata栈中所有元素:’,s.stackData.all())
print(‘stackdata的栈顶’,s.stackData.peek())
print(‘stackmin栈中所有元素:’,s.stackMin.all())
print(‘stackmin的栈顶’,s.stackMin.peek())
print(‘min’,s.getmin())
s.pop()
s.pop()
s.pop()
#s.push(1)
print(‘stackdata栈中所有元素:’,s.stackData.all())
print(‘stackdata的栈顶’,s.stackData.peek())
print(‘stackmin栈中所有元素:’,s.stackMin.all())
print(‘stackmin的栈顶’,s.stackMin.peek())
print(‘min’,s.getmin())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值