python数据结构——(1)栈及其应用

姓名:王海桐 学号:21021211072 学院:电子工程学院

# 栈的定义

栈是什么呢?简单来说,就是一个没有盖子的水杯,装水的时候,先进去的水在最底下,而最后放的水在最上面。倒水的时候,在最上面的水先被倒出去,在最下面的水最后呗倒出去。总结来说,就是先入后出或者后入先出。

在Python中,栈的实现如下:

----------------------------------------------------------------------------------------------------

# 将列表上端或者右端作为顶端

class Stack:

    # 初始化

    def __init__(self):

        self.items = []

    # 判断是否为空

    def isEmpty(self):

        return self.items == []

    # 压栈

    def push(self, item):

        self.items.append(item)

    # 出栈

    def pop(self):

        return self.items.pop()

    # 返回栈顶元素

    def peek(self):

        return self.items[len(self.items)-1]

    # 栈的大小

    def size(self):

        return len(self.items)

--------------------------------------------------------------------------------------------

# 栈的应用

## 简单括号匹配

说明:出现括号的时候,都是左括号和右括号成对出现。有一个左括号“(”,必定有一个右括号“)”与之对应。而且,第一个左括号应该匹配最后一个右括号。

----------------当出现次序反转的问题,就应当用“栈”来解决问题-----------------

算法思路:将输入中的字符一个一个地检查,如果是左括号“(”,就压入栈;如果是右括号“)”,栈不空的时候就弹出栈(因为栈里只有左括号),栈空的时候说明这个右括号是多余的,不能匹配。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容