二叉树实现加减乘除

如题所述

第1个回答  2022-06-28

具体步骤如下:

对于正负号,发现正负号一般在数字的前面,根据递归规律,可以发现,一般正负号在字符串的第一位,后面跟着数字,由此可以将正负号当作是对其后面的数字的取值操作

(1)树结点

(2)checkBrackets(char input, int l, int r)
检查左右两边的括号是否为同一对,同一对则可以移除 例如:(2 + 4)
(3 - 1) 是不可以去掉最左边跟最右边的括号的。若为同一对,返回true,否则返回false

(3)findNode(char *input, int l, int r)
寻找下标为l~r的字符串中的优先级最低的运算符

(4)Tree *buildTrees(char *input, int l, int r)
根据表达式创建二叉树

(5)preOrder(Tree *tree)
根据后序遍历计算表达式结果

相似回答