博客
关于我
python 之栈的实现
阅读量:797 次
发布时间:2023-03-06

本文共 1178 字,大约阅读时间需要 3 分钟。

#!/usr/bin/env python# ---------------------------------------# author : Geng Jie# email  : gengjie@outlook.com# Create Time: 2016/3/16 23:38# ----------------------------------------class Node:    def __init__(self, value):        self.value = value        self.next = Noneclass Stack:    def __init__(self):        self.top = None    def push(self, value):        node = Node(value)        node.next = self.top        self.top = node    def pop(self):        node = self.top        self.top = node.next        return node.valueif __name__ == '__main__':    stack = Stack()    # for i in range(10):    #     stack.push(i)    #     # while stack.top:    #     #     print(stack.pop())    exp = '{a * [x/(x+y)]}'    for c in exp:        if c in '{[(':            stack.push(c)        elif c in '}])':            v = stack.top.value            if c == '}' and v != '{':                raise Exception('failed')            if c == ']' and v != '[':                raise Exception('failed')            if c == ')' and v != '(':                raise Exception('failed')            stack.pop()    if stack.top is not None:        raise Exception('failed')    print('ok')

  

转载地址:http://wdofk.baihongyu.com/

你可能感兴趣的文章
python | pyparsing,一个强大的 Python 库!
查看>>
python | pyqtgraph,一个神奇的 Python 库!
查看>>
python读取文本文件数据
查看>>
python | Python mock对象与测试替身
查看>>
python | Python pandas实现数据追加和合并的最佳方法
查看>>
python | Python 中检查一个数字是否是三态数
查看>>
python | Python 蒙特卡洛模拟
查看>>
python | python-docx,一个超厉害的 Python 库!
查看>>
python | Python中使用@property装饰器
查看>>
python | Python中的functools模块高级应用
查看>>
python | Python中的itertools模块使用技巧
查看>>
python | Python中的事件驱动编程模型
查看>>
python | Python中的内存池与缓存机制
查看>>
python | Python中的弱引用与内存管理
查看>>
python | Python中的类多态:方法重写和动态绑定
查看>>
python | Python作用域链查找机制
查看>>
python | Python俄罗斯方块游戏详解
查看>>
python | Python动态代码执行:exec和compile函数
查看>>
Python读取文件数据进行数据图形化展示
查看>>
python | Python反向迭代:reversed实现机制
查看>>