public class NiBoLan {
private static final int MAX_NODE = 100;
// 二叉树的结点类
private static class MyTreeNode {
public double value;// 若结点是数字,则保存为该结点的值;若是符号,则此字段无意义
public char symbol;// '+','-','*','/','d'
public int left;// 左孩子
public int right;// 右孩子
public int father;// 爹地
public void init() {
value = 0;
symbol = '\0';
left = -1;
right = -1;
father = -1;
}
}
private static boolean isOperator(char c) {
if (c == '+' || c == '-' || c == '*' || c == '/') {
return true;
}
return false;
}
private static boolean isDigit(char c) {
if ((c <= '9' && c >= '0') || c == '.') {
return true;
}
return false;
}
// 用递归计算树的值
private static double getNodeValue(MyTreeNode[] tree, int nodeNum)

该博客介绍了一种使用二叉树解析逆波兰表达式的算法。通过建立二叉树并递归计算节点值来求解表达式。文章提供了具体的Java代码实现,包括二叉树节点类、判断字符是否为操作符或数字的辅助方法,以及核心的计算方法。最后,通过几个示例演示了算法的应用。
最低0.47元/天 解锁文章
1054

被折叠的 条评论
为什么被折叠?



