Преобразовать инфикс к постфикса или префиксом
Входной постфикса является: аб + CDE + **
- Рассмотрим первый символ, если он не является символом, а затем создайте узел, чтобы добавить его в стек
- Если chara cter - это символ, затем создайте узел с символами поп-элементов и добавьте влево и вправо от символа
- Нажмите узел символа в стек.
- Repeat 1, 2 и 3 до итератора больше не имеет элементы реализации
Java
public Tree.TreeNode createExpressionTree(){
Iterator<Character>itr = postOrder.iterator();
Tree tree = new Tree();
NodeStack nodeStack = new NodeStack();
Tree.TreeNode node;
while (itr.hasNext()) {
Character c = itr.next();
if(!isDigit(c)){
node = tree.createNode(c);
node.right = nodeStack.pop();
node.left = nodeStack.pop();
nodeStack.push(node);
}else{
node = tree.creteNode(c);
nodeStack.push(node);
}
}
node = nodeStack.pop();
return node;
}
Подробнее: http://en.wikipedia.org/wiki/Binary_expression_tree
Вы можете реализовать решение, используя алгоритм шунтирования. Ниже приведены некоторые сведения о wikipiedia:. Этот алго был изобретен Эдсгером Дейкстра, это очень хорошая альтернатива.Если вам нужны детали, я могу опубликовать пример кода, который я написал на C# некоторое время назад, но я полагаю, что ссылка на wikipedia более чем достаточно. –