一个二叉树 ,比如这样,有3种运算符以及2种值
+ 或者, 即 or
- 非, not
* 与, and如何做到
1. 通过转换去掉其中的 -, 让这个树里只剩下 * 和 + ,并去括号求的最终公式
下图左边是
(a+b)-(c+d) ==
(a or b) and !(c or d) ==
(a or b) and (!c and !d) ==
(a or b) and !c and !d ==
最终公式: a!c or b!c or a!d or b!d
/a /a
+ +
/ \b / \b
- +
\ /c \ /!c
+ *
\d \!d搞定后再加500分 谢谢。。
+ 或者, 即 or
- 非, not
* 与, and如何做到
1. 通过转换去掉其中的 -, 让这个树里只剩下 * 和 + ,并去括号求的最终公式
下图左边是
(a+b)-(c+d) ==
(a or b) and !(c or d) ==
(a or b) and (!c and !d) ==
(a or b) and !c and !d ==
最终公式: a!c or b!c or a!d or b!d
/a /a
+ +
/ \b / \b
- +
\ /c \ /!c
+ *
\d \!d搞定后再加500分 谢谢。。
解决方案 »
- ODBC excel 错误提示: microsoft jet 数据库 找不到对象
- 怎么删除数据库表中的指定行?比如我要删除的第三行。代码该怎么写?
- vc/mfc Winsock聊天室程序中服务器接受消息顺序的问题
- 求教利用StretchBlt函数实现图像缩放的功能
- 如何改变editbox、listbox、listctrl等控件的滚动条颜色(无需重画)
- ******************龟头老痒,哎,真难办啊******************
- 防火墙会不会对C/S程序造成影响?
- 为什么有时候能跟进DLL中,而有时候不能
- MFC如何关闭窗口
- 用MFC如何做界面
- vc++深入详解光盘内容
- 为什么VC6 Add Virtual Function 无OnInitDialog虚拟函数?
+
/ \b
-
\ /c
+
\d
需要求出最终结果
a!c or b!c or a!d or b!d
3种运算符貌似明白了,2种值是什么?括号怎么表示?abcd和运算符都是用节点表示吗?
另外,怎么我觉得最终结果应该是a!c!d+b!c!d?
请忽略顶楼画的树,一贴到论坛就变样了 还不能改。请看4楼的树。。
先前没说清。。再补充下。
2种值是指 a,b,c,d 这些都只可能是 true或false已经晕了。。