BLOG
Enjoy when you can, and endure when you must.
APR 27, 2014/数据结构
后缀表达式求值
对一个后缀表达式进行求值需要用到堆栈,它用于存放操作数并在计算时将其弹出。假设我们将一个正确的后缀表达式存放在一个字符串中,计算时,只需从左到右依次扫描该字符串并遵循以下步骤进行: 1. 如果当前元素是一个操作数,则将其值推入堆栈; 2. 如果当前元素是一个运算符: a)将栈顶的头两个元素弹出; b)将这两个元素与当前运算符做数学运算(注意弹出的第一个元素为右操作数,而第二个元素为左操作数); c)将结果推入堆栈。 A B C + * D / 这里我们以这个后缀表达式为例演示求值过程。假设A、B、C、D的值分别如下: A = 8 ...
NOV 14, 2013/Python
利用Python列表实现堆栈(二):实现
以下定义了一个全功能的堆栈类:class error(Exception): pass                 # when imported: local exception class Stack:     def __init__(self, start=[]):&nbs...
NOV 14, 2013/Python
利用Python列表实现堆栈(一):剖析
堆栈是一种非常常见且简单易用的数据结构,适用在多种应用场合。堆栈是一种数据项按序排列的数据结构,只能在一端(栈顶)对数据项进行插入和删除,遵循后进先出的原则。在不同的需求中,栈的操作可能不仅限于进栈和出栈,可能还需要检测栈是否为空,获取栈顶元素但并不将其弹出,遍历栈内所有元素,或者检测某元素是否在栈中存在等等。在Python中,一个简单的列表元素通常足够用来实现栈:它允许对其中的元素进行任意操作,从任意一端插入或取出元素。下表总结了一些Python内置的列表操作方法来模拟栈操作。操作栈顶处于列表末尾栈顶位于列表起始位置栈顶位于列表起始位置新建stack=['a', ...
1