首页 > 编程语言 > 详细

python 之栈的实现

时间:2016-03-17 01:47:48      阅读:254      评论:0      收藏:0      [点我收藏+]
#!/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‘)

  

python 之栈的实现

原文:http://www.cnblogs.com/topicjie/p/5285835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!