美文网首页
python3 实现栈

python3 实现栈

作者: fanchuang | 来源:发表于2020-01-02 11:46 被阅读0次
# python3 如何实现栈呢?
# 栈的特点,先进后出。
# 2中写法都是可行的。但是第二种写法的性能更能好一些。

# 我自己写的。未参考别人的写法之前写的。
# 这种写法,相当于是把列表顺时针旋转90度。那如果是逆时针旋转90度呢,性能上会更好吗?
class MinStack:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.data = []

    def __repr__(self):
        print(self.data)

    # 添加元素
    def push(self, x: int) -> None:
        self.data.insert(0, x)
        # print(self.data)

    def pop(self) -> None:
        self.data.pop(0)
        # print(self.data)

    # 这里是有问题的。这里我只想获取栈顶的值,并且不能删除这个值。
    def top(self) -> int:
        # return self.data.pop(0)
        return self.data[0]

    def getMin(self) -> int:
        return min(self.data)


# 参考了别人的写法。
# 测试一下逆时针旋转90度的性能
class MinStack2:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.data = []

    # 添加元素
    def push(self, x: int) -> None:
        self.data.append(x)
        # print(self.data)

    def pop(self) -> None:
        self.data.pop()
        # print(self.data)

    # 这里是有问题的。这里我只想获取栈顶的值,并且不能删除这个值。
    def top(self) -> int:
        # return self.data.pop(0)
        return self.data[-1]

    def getMin(self) -> int:
        return min(self.data)


# ********* test start here ************
# s = MinStack()
# s.push(-2)
# s.push(0)
# s.push(-3)
# print(s.data)
#
# res1 = s.getMin()
# print(res1)
#
# s.pop()
# t = s.top()
# print(t)
# res2 = s.getMin()
# print(res2)
# print(s.data)

s = MinStack2()
s.push(-2)
s.push(0)
s.push(-3)
print(s.data)

res1 = s.getMin()
print(res1)

s.pop()
print(s.data)

t = s.top()
print(t)
res2 = s.getMin()
print(res2)
print(s.data)

相关文章

  • python3 实现栈

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • Algorithm小白入门 -- 队列和栈

    队列和栈队列实现栈、栈实现队列单调栈单调队列运用栈去重 1. 队列实现栈、栈实现队列 队列是一种先进先出的数据结构...

  • Swift 队列&栈 相关操作

    栈 LIFO(后进先出) 队列 FIFO(先进先出) 队列与栈相互的实现 栈 - 队列实现 队列 - 栈实现 相关...

  • 2018-07-09顺序表实现栈

    栈的实现 ——直接用顺序表(列表list)进行 栈结构实现 栈可以用顺序表实现,也可以用链表实现。 栈的操作 St...

  • 38_两个有趣的问题

    关键词:通过栈实现队列、通过队列实现栈 0. 通过栈实现队列 用栈实现队列等价于用后进先出的特性实现先进先出的特性...

  • 算法-栈和队列算法总结

    栈和队列算法总结 1 模拟 1.1 使用栈实现队列 1.2 使用队列实现栈 2 栈的应用 2.1 栈操作 2.2 ...

  • 队列之-队列实现栈

    一、队列实现栈核心算法概述 之前已经描述过了用栈实现队列的功能,见栈系列之-实现队列,那么同样队列也可以用来实现栈...

  • 栈 Python实现

    栈的顺序表实现 栈的链接表实现

  • C语言第七次作业:链表

    707. 设计链表 空指针 空节点 225. 用队列实现栈 链式存储栈 双队列实现栈 232. 用栈实现队列 链式...

网友评论

      本文标题:python3 实现栈

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