美文网首页
225.用队列实现栈

225.用队列实现栈

作者: 等不了天明等时光 | 来源:发表于2020-03-17 02:09 被阅读0次

    解题思路

    1、队列与栈的区别:
    队列是先入队元素先出队,后入队元素后出队;栈是先入栈元素后出栈,后入栈元素先出栈。
    2、在python中用列表list来模拟队列,append()函数可以在list末尾添加元素,pop(i)函数可以删除第(i+1)个元素。
    3、主要步骤:
    1)首先用列表list初始化一个队列:self.q = []
    2)元素入栈:self.q.append()
    3)移除栈顶元素:即最新添加的末尾元素self.q[-1],获取它的值然后删除它
    4)获取栈顶元素:即最新添加的末尾元素self.q[-1]
    5)判断栈是否为空:根据list中有无元素来判断,返回True或False
    注:这里加了判断栈是否为空的操作,以防万一。

    代码

    class MyStack:
    
        def __init__(self):
            """
            Initialize your data structure here.
            """
            self.q = []
    
    
        def push(self, x: int) -> None:
            """
            Push element x onto stack.
            """
            self.q.append(x)
    
    
        def pop(self) -> int:
            """
            Removes the element on top of the stack and returns that element.
            """
            # if len(self.q) != 0:
            #     temp = self.q[-1]
            #     del self.q[-1]
            #     return temp
            # else:
            #     return Fasle
            return self.q.pop(-1)
    
    
    
        def top(self) -> int:
            """
            Get the top element.
            """
            if len(self.q) != 0:
                return self.q[-1]
            else:
                return False
    
    
        def empty(self) -> bool:
            """
            Returns whether the stack is empty.
            """
            if len(self.q) == 0:
                return True
            else:
                return False
    
    
    
    # Your MyStack object will be instantiated and called as such:
    # obj = MyStack()
    # obj.push(x)
    # param_2 = obj.pop()
    # param_3 = obj.top()
    # param_4 = obj.empty()
    

    相关文章

      网友评论

          本文标题:225.用队列实现栈

          本文链接:https://www.haomeiwen.com/subject/mdnaehtx.html