题目信息

题目类型
练习
题目年份
2022
题目题型
编程题
关 键 词
表达式·表达式树·表达式求值

题目题干

4. 表达式·表达式树·表达式求值

  众所周知,任何一个表达式,都可以用一棵表达式树来表示。例如,表达式a+b*c,可以表示为如下的表达式树:
   +
  /  \
 a    *
     / \
     b  c
  现在,给你一个中缀表达式,这个中缀表达式用变量来表示(不含数字),请你将这个中缀表达式用表达式二叉树的形式输出出来。
时间限制:1000
内存限制:65535
输入
  输入分为三个部分。 第一部分为一行,即中缀表达式(长度不大于50)。中缀表达式可能含有小写字母代表变量(a-z),也可能含有运算符(+、-、*、/、小括号),不含有数字,也不含有空格。第二部分为一个整数n(n < 10),表示中缀表达式的变量数。第三部分有n行,每行格式为C x,C为变量的字符,x为该变量的值。
输出
  输出分为三个部分,第一个部分为该表达式的逆波兰式,即该表达式树的后根遍历结果。占一行。 第二部分为表达式树的显示,如样例输出所示。如果该二叉树是一棵满二叉树,则最底部的叶子结点,分别占据横坐标的第1、3、5、7……个位置(最左边的坐标是1),然后它们的父结点的横坐标,在两个子结点的中间。如果不是满二叉树,则没有结点的地方,用空格填充(但请略去所有的行末空格)。每一行父结点与子结点中隔开一行,用斜杠(/)与反斜杠(\)来表示树的关系。/出现的横坐标位置为父结点的横坐标偏左一格,\出现的横坐标位置为父结点的横坐标偏右一格。也就是说,如果树高为m,则输出就有2m-1行。第三部分为一个整数,表示将值代入变量之后,该中缀表达式的值。需要注意的一点是,除法代表整除运算,即舍弃小数点后的部分。同时,测试数据保证不会出现除以0的现象。
样例输入
    a+b*c
    3
    a 2
    b 7
    c 5
样例输出
    abc*+  
    +
  /  \
 a    *
     / \
     b  c
 
    37

答案解析

相关题目

4. 表达式·表达式树·表达式求值 众所周知,任何一个表达式,都可以用一棵表达式树来表示。例如,表达式a+b*c,可以表示为如下的表达式树: + / \ a * /
3. 快速堆猪 小明有很多猪,他喜欢玩叠猪游戏,就是将猪一头头叠起来。猪叠上去后,还可以把顶上的猪拿下来。小明知道每头猪的重量,而且他还随时想知道叠在那里的猪最轻的是多少斤。 时间限制:1000
2. 重建二叉树 给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。 时间限制:1000 内存限制:65536 输入 输入可能有多组,以EOF结束。每组输入包含两个字符串,分别为树的前序
1. 走迷宫 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,
4. priority queue练习题 我们定义一个正整数a比正整数b优先的含义是: *a的质因数数目(不包括自身)比b的质因数数目多(相同的质因数只计算1次); *当两者质因数数目相等时,数值
3. Sequence 给定m个数字序列,每个序列包含n个非负整数。我们从每一个序列中选取一个数字组成一个新的序列,显然一共可以构造出n^m个新序列。接下来我们对每一个新的序列中的数字进行求和,一共会
2. 迷宫 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个
1. 二叉树的深度 给定一棵二叉树,求该二叉树的深度 二叉树深度定义:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的节点个数为树的深度 时间限制:1000 内存限制:655
4.兰州拉面派餐系统 描述 兰州拉面是著名美食,其煮面很有讲究,不同种类的面需要煮不同的时长。拉面馆的煮面师傅的规则很简单,只要手头有煮面篮子是 空闲的,就把下一份客单指定的面放到空闲篮子里煮;如果空
3.到底爱不爱我 描述 古代少女有了心上人时,会悄悄折一条树枝,秋那枝上的叶子,揪一片叶子念一句爱我”,再揪一片念一句不爱我这样秋落最后 一片叶子的时候,看看是停在“爱"还是不爱”。 但聪明

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢