摘要: 本例中的二叉树图是使用Graphviz绘制的(Graphviz官网),在Ubuntu Linux下可以使用apt-get命令安装它: 表达式“1+2*3”和“1*2+3”的Dot代码如下: 使用下面的命令来生成png图像: 阅读全文
posted @ 2017-08-05 21:23 Lets_Blu 阅读(304) 评论(0) 推荐(0)
摘要: 代码清单 阅读全文
posted @ 2017-08-05 21:14 Lets_Blu 阅读(416) 评论(0) 推荐(0)
摘要: 二叉树方法求值对运算数处理的方法与栈方法求值不太相同,除了将字符串中的运算数转换为浮点类型外,还需要生成新的节点: 对其他token的处理则和栈方法求值类似,请参考代码清单,这里不再赘述。 公有方法calculate()直接调用了postOrder()方法,调用前清空用于存储浮点类型的栈,方法返回后 阅读全文
posted @ 2017-08-05 21:11 Lets_Blu 阅读(367) 评论(0) 推荐(0)
摘要: 表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储;同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法求值中一样的枚举类型TokenType: 二叉树方法求值的Calculator类公有继承自节点数据数据类型为Token类的BinaryTree类: 方法parse 阅读全文
posted @ 2017-08-05 21:03 Lets_Blu 阅读(1003) 评论(0) 推荐(0)