python类形式的栈

python类形式的栈,第1张

题目: 小邋遢的衣橱

小邋遢 MS.Jinlin 是个爱打扮的公主,他有很多晚礼服如"LALA" "NIHAOMA"、"WOBUHAO"、"NIHAOBUHAO"等众多衣服,可是由于衣服太多他要把它们装进箱子,但是作为公主,肯定是会突发奇想觉得哪件衣服好看,就把他拿了出来,当然那件衣服上面的衣服也被拿出来了,而且会弄乱了,小邋遢在经过几次的叠衣服和取衣服后,他想知道箱子里最上面的衣服是哪一件,如果箱子为空的话,就告诉她 Empty ,如果有多件一样的衣服,肯定是取走最上面的那一件啦。


输入:

第 1 行,输入N,代表共计进行了几次 *** 作
第 2 行至第 N+1 行,进行in out  *** 作
in 为 放入衣服
out 为 取出衣服

格式:  

    in name1  
    out name2

现在有以下样例输入:

样例 1:

输入:

6
in AMDYES
in INTELNO
in USBAD
in CNYES
out INTELNO
in MDICN

输出:

MDICN

样例 2:

输入:

5
in AMDYES
in INTELNO
in USBAD
in CNYES
out AMDYES

输出:
Empty
思路:

第一步:

创建一个栈,以及一个栈的栈顶指针

顺序栈 栈 1
栈顶指针 指针 1

第二步:

我们要声明并定义入栈函数:

  1. 按照栈的定义使用栈顶指针模拟即可
  2. 需要传入一个参数来表示放什么数据
in(Name)
{
    栈不满,Name 进入栈;
    栈满,返回 False;
}

第三步:

我们声明并定义判空函数:

通过栈顶指针大小即可判断。


isEmpty()
{
    1. 如果栈为空返回True
    2. 不为空返回False
}

第四步:

我们要声明并定义出栈函数:

  1. 按照栈的定义使用栈顶指针模拟即可
  2. 返回一个数据表示出栈元素。


out()
{
    如果栈为空则不能出栈,返回False;
    不为空,则出栈。


}

第五步:

我们声明并定义取栈顶函数:

  1. 只需要将栈顶元素取出即可
  2. 先判断是否为空
    string getTop()
    {
        如果栈为空则不能取栈顶,返回null;
        不为空,则返回栈顶。


}

第六步:

主函数代码:

输入N
循环N次://
    
输入OP,输入name 

根据执行OP执行in或out *** 作
    
判空,取栈顶输出答案
答案(python源码):
class myStack:
    def __init__(self):
        self.data=[]
    #入栈
    def push(self,element):
        self.data.append(element)
    #判空
    def is_empty(self):
        return self.data==[]
    #出栈
    def pop(self):
        if self.data==[]:
            return
        
        return self.data.pop()
    #取栈顶元素
    def top(self):
        if self.data==[]:
            return
        
        return self.data[-1]
if __name__=='__main__':
    N=int(input())
    stack=myStack()
    for i in range(N):
        op=input().split()
        if op[0]=="in":
            stack.push(op[1])
        else:
            while stack.top()!=op[1]:
                stack.pop()
            stack.pop()
    
    if stack.is_empty():
        print("Empty")
    else:
        print(stack.top())

 声明:文章部分内容,参考或者引用蓝桥云课上的文章。


链接如下:

蓝桥杯省赛 14 天夺奖冲刺营 - 数据结构基础之链表篇 - 蓝桥云课 (lanqiao.cn)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/570405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存