//表达式求值的实现#include #include //#define _OJ_#define maxsize 100typedef struct stack{ int top; int base; char *elem;} stack, *stack1;stack1creat_stack(vo...
分类:
其他好文 时间:
2015-11-06 00:00:52
阅读次数:
343
本文是针对数据结构基础系列(6):树和二叉树的配套实践。【项目 - 用二叉树求解代数表达式】
用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根据形如“1+2?3?4/51+2*3-4/5”的字符串代表的表达式,构造出对...
分类:
其他好文 时间:
2015-11-01 12:44:11
阅读次数:
340
表达式求值时间限制:3000ms | 内存限制:65535KB难度:4描述ACM队的mdd想做一个计算器,但是,他要做的不仅仅是一计算一个A+B的计算器,他想实现随便输入一个表达式都能求出它的值的计算器,现在请你帮助他来实现这个计算器吧。比如输入:“1+2/4=”,程序就输出1.50(结果保留两位小...
分类:
其他好文 时间:
2015-10-29 12:58:46
阅读次数:
166
1.题目描述:题目大意是实现一个只有加法,减法和括号的表达式求值,表达式中所有数都是正整数。2.解题思路:这道题其实是一道简化版的表达式求值问题,可以使用经典的算符优先法求解,即建立运算符栈和操作数栈,然后进行各种进出栈操作。同时这道题只有加号,减号和括号三种运算符的特性有让我们对算符优先法进行一些...
分类:
其他好文 时间:
2015-10-29 00:28:33
阅读次数:
366
Stack.hpp#pragmaoncetemplate<classT>classStack{private: T*_array; size_t_capacity; int_topindex;public: Stack()//构造函数 :_array(0) ,_capacity(0) ,_topindex(-1) {} voidPush(constT&x){//入栈操作 if(_topindex+1==_capacity){ _capacity=2*_capac..
分类:
编程语言 时间:
2015-10-23 00:17:47
阅读次数:
352
1、求值顺序:运算对象的求值顺序与优先级和结合律无关i = f(i) + g(i)*h(i) + j(i); //如果这里的各个函数与i无关,则无所谓,如果内部都改变了i则会出错如果几个函数影响同一个对象,则会产生未定义的行为2、当拿不准求值顺序时,用括号来强制组合3、赋值运算符:左侧...
分类:
其他好文 时间:
2015-09-22 21:41:26
阅读次数:
118
本文是针对数据结构基础系列网络课程(3):栈和队列的实现项目。【项目 - 后缀表达式】 利用sqstack.h中栈的基本运算,实现将一个中缀表达式转换为对应的后缀表达式的算法。例如,输入(56-20)/(4+2),输出后缀表达式::56#20#-4#2#+/要求在数字后加#。参考解答说明: 原理见视频 栈的应用1-表达式求值,还可以参考表达式求值的源码
基于栈结构,将中缀表达式转换为后缀表...
分类:
其他好文 时间:
2015-09-20 13:21:45
阅读次数:
189
本组项目针对《数据结构基础系列(3):线性表》中的1-6课:
1 “栈和队列”导学
2 栈的定义
3 栈的顺序存储结构及其基本运算实现
4 栈的链式存储结构及其基本运算的实现
5 栈的应用1-表达式求值
6 栈的应用2-迷宫问题【项目1 - 建立顺序栈算法库】
定义顺序栈存储结构,实现其基本运算,并完成测试。
要求:
1、头文件sqstack.h中定义数据结构并声明用于...
分类:
其他好文 时间:
2015-09-20 10:34:19
阅读次数:
303
对表达式求值。已知运算符只有加减乘除,无负数,结果也不是负数。(类似逆波兰法的算法思路)思想:对数字只要入栈就可以,需要时拿出来计算。对符号,有几种情况:(1)新符号加入前符号栈中还没有符号,则直接入栈;(2)新符号是加减运算,则将之前符号栈中的符号全部拿出来计算,每次消耗1个符号,2个数字,再将得...
分类:
其他好文 时间:
2015-09-18 01:56:32
阅读次数:
171
后缀表达式求值算法 stack?operands;??//运算数栈
while(没到表达式尾)
{
????scanf("一个运算对象op");
????if(op?is?运算数)
????????operands.push(op);
????else?if(op?is?运算符...
分类:
编程语言 时间:
2015-09-16 01:09:44
阅读次数:
245