zoukankan      html  css  js  c++  java
  • python 之栈的实现

    #!/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 = None
    
    
    class 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.value
    
    
    if __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')
    

      

  • 相关阅读:
    快速幂 快速乘法
    扩展欧几里得学习笔记
    求逆序数数目(树状数组+离散化)
    隐式图的遍历
    随机数生成
    推倒重来
    动态规划初步
    子集生成
    东大oj1155 等凹函数
    P1278 单词游戏
  • 原文地址:https://www.cnblogs.com/topicjie/p/5285835.html
Copyright © 2011-2022 走看看