zoukankan      html  css  js  c++  java
  • NOI-OJ 2.2 ID:1696 逆波兰表达式

    思路

    • 很容易看出规律,一个运算符出现,其后就一定需要左值和右值,而左值和右值有可能还是运算符,这就需要继续递归。递归终止的条件就是遇到数字。

    • 逆波兰表达式其实是构造成了一颗二叉树

    逆波兰表达式构造成的二叉树

    例程

    #include<iostream>
    #include<cstdlib>
    												//atof函数用于将以字符数组形式
    												//存在的浮点数转化为浮点数
    												//cstdlib库中提供了atof函数 
    using namespace std;
    double nbl(){									//逆波兰表达式函数 
    	char s[100];
    	double num;
    	scanf("%s", s);
    	if(s[0]=='+')		return nbl()+nbl();		//如果读到了运算符就递归 
    	if(s[0]=='-')		return nbl()-nbl();
    	if(s[0]=='*')		return nbl()*nbl();
    	if(s[0]=='/')		return nbl()/nbl();
    	return atof(s);								//临界点是读到了浮点数 
    }
    int main(){
    	printf("%f
    ", nbl());
    	return 0; 
    }
  • 相关阅读:
    Linux进程管理
    GitHub
    MySQL存储过程
    MySQL自定义函数
    MySQL运算符和内置函数
    js类型检测
    防止SQL注入的方法
    PDO数据库抽象层
    PHP操作MySQL的常用函数
    第二周
  • 原文地址:https://www.cnblogs.com/lfyzoi/p/6705477.html
Copyright © 2011-2022 走看看