摘要: Arduino UNO R3的主处理器ATMega328P上有3个8位的输入/输出端口,分别是PB,PC和PD。Arduino IDE提供的Blink示例可以帮助我们了解端口的数字输出功能: 这个示例使Arduino开发板13(PB5)引脚上的LED闪烁,与数字输出相关的Arduino库函数有: p 阅读全文
posted @ 2017-09-12 22:38 Lets_Blu 阅读(1749) 评论(0) 推荐(0)
摘要: 本例中的二叉树图是使用Graphviz绘制的(Graphviz官网),在Ubuntu Linux下可以使用apt-get命令安装它: 表达式“1+2*3”和“1*2+3”的Dot代码如下: 使用下面的命令来生成png图像: 阅读全文
posted @ 2017-08-05 21:23 Lets_Blu 阅读(300) 评论(0) 推荐(0)
摘要: 代码清单 阅读全文
posted @ 2017-08-05 21:14 Lets_Blu 阅读(414) 评论(0) 推荐(0)
摘要: 二叉树方法求值对运算数处理的方法与栈方法求值不太相同,除了将字符串中的运算数转换为浮点类型外,还需要生成新的节点: 对其他token的处理则和栈方法求值类似,请参考代码清单,这里不再赘述。 公有方法calculate()直接调用了postOrder()方法,调用前清空用于存储浮点类型的栈,方法返回后 阅读全文
posted @ 2017-08-05 21:11 Lets_Blu 阅读(353) 评论(0) 推荐(0)
摘要: 表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储;同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法求值中一样的枚举类型TokenType: 二叉树方法求值的Calculator类公有继承自节点数据数据类型为Token类的BinaryTree类: 方法parse 阅读全文
posted @ 2017-08-05 21:03 Lets_Blu 阅读(993) 评论(0) 推荐(0)
摘要: 使用二叉树对算数表达式(以下简称为表达式)进行求值,实质上是将表达式转换为二叉树,对其进行后序遍历,得到后缀表达式的同时可以求得表达式的值。转换和求值的过程也需要借助数据结构栈的帮助。 二叉树数据结构需要声明2个类,二叉树节点类(BinaryTreeNode)和二叉树类(BinaryTree),这两 阅读全文
posted @ 2017-08-03 21:14 Lets_Blu 阅读(1627) 评论(0) 推荐(0)
摘要: 代码清单 阅读全文
posted @ 2017-08-02 20:46 Lets_Blu 阅读(313) 评论(0) 推荐(0)
摘要: 上篇中完成了对表达式求值的整体过程,接下来看看如何处理不同类型的token。 对运算数的处理比较简单,它直接调用函数strtod(),将字符串中的运算数转换为浮点类型并将它压入运算数栈中: 函数strtod()和函数isdigital()分别被声明于头文件cstdlib和cctype中,前者通过第二 阅读全文
posted @ 2017-08-02 20:43 Lets_Blu 阅读(595) 评论(0) 推荐(0)
摘要: 一个算数表达式(以下简称为表达式)由运算数、运算符、左括号和右括号组成,定义一个枚举类型TokenType表示为: BEGIN用来表示表达式的开始,稍后会再提及到它。 对表达式进行求值需要借助数据结构栈,C++的标准模板库中包含stack类型,只需要包含头文件stack并引用命名空间std就可以使用 阅读全文
posted @ 2017-08-02 18:16 Lets_Blu 阅读(1457) 评论(0) 推荐(0)
摘要: 代码清单 阅读全文
posted @ 2017-07-30 18:44 Lets_Blu 阅读(247) 评论(0) 推荐(0)