我目前正在为二叉树编写一个C++。然而,无论我想评估什么样的表达式,整个事情都会被编写,我一直有命令提示符告诉我-1。#IND。任何想法修复这个,甚至这意味着什么?-1 #IND问题
在此先感谢
代码:
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
template<typename T> struct TreeNode
{
TreeNode(const T& value, TreeNode<T>* left = NULL, TreeNode<T>* right = NULL)
{
Value = value;
Left = left;
Right = right;
}
T Value;
TreeNode<T>* Left;
TreeNode<T>* Right;
bool IsLeaf() const
{
return Left == NULL && Right == NULL;
}
};
double ValueOf(TreeNode<char>* treeNode)
{
if (treeNode->IsLeaf())
{
return treeNode->Value - '0';
}
else
{
switch(treeNode->Value)
{
case '+':
return ValueOf(treeNode->Left) + ValueOf(treeNode->Right);
break;
case '-':
return ValueOf(treeNode->Left) - ValueOf(treeNode->Right);
break;
case '*':
return ValueOf(treeNode->Left) * ValueOf(treeNode->Right);
break;
case '/':
return ValueOf(treeNode->Left)/ValueOf(treeNode->Right);
break;
}
}
}
void main()
{
string expression;
cout << "Please enter an expression: ";
cin >> expression;
TreeNode<char> *newLeaf;
TreeNode<char> *treeRoot;
TreeNode<char> *currentNode;
TreeNode<char> *newRoot;
TreeNode<char> *newChild;
treeRoot = NULL;
currentNode = treeRoot;
for (int i = 0; i < expression.length(); i++)
{
if ((expression[i] >= 0) || (expression[i] <= 9))
{
newLeaf = new TreeNode <char> (expression[i]);
if (currentNode == NULL)
{
treeRoot = currentNode = newLeaf;
}
else
{
currentNode->Right = newLeaf;
}
}
else if (((expression[i] == '+' || expression[i] == '-') || (expression[i] == '*' || expression[i] == '/')) && currentNode->Right == NULL)
{
newRoot = new TreeNode <char> (expression[i]);
newRoot->Left = treeRoot;
treeRoot = newRoot;
currentNode = newRoot;
}
else if (expression[i] == '*' || expression[i] == '/')
{
newChild = new TreeNode <char> (expression[i]);
newChild->Left = currentNode->Right;
currentNode->Right = newChild;
currentNode = newChild;
}
}
double result = ValueOf(treeRoot);
cout << "The result is: " << result << endl;
system("pause");
}
“我有一辆车,不管我怎么把钥匙打开,为什么?”如果没有看到整辆汽车,就不能告诉你......向我们展示你的代码,你的输入是什么,你期望什么,以及你得到了什么。 – GManNickG 2011-03-23 23:05:36
你有先生。 – Mike 2011-03-23 23:21:57