static char prec[5][2] = { '^', 3, '*', 2, '/', 2, '+', 1, '-', 1 };
void tree::buildTree(char *str)
{
char token;
int a = 0;
while (str[a])
{
token = str[a++];
node *temp = new node(token);
for (int b = 0; b < 5; b++)
if (temp->data == prec[b][0])
{
temp->prior = prec[b][1];
break;
}
if (temp->prior == 4)
operand(temp);
else
operate(temp);
}
}
1. 우선 인자 (char *str)은 어떠한 연산식이 입력이 됩니다. (ex. A/B*C+D ... )
2. 첫번째 if문에서 temp->data == prec[b][0] 이 조건이 어디서 발생이 되나요?? temp->data의 값은 어디에서도 연산 진행이 안되었을텐데..
3. 두번째 if문에서 temp->prior == 4 일 수가 없지 않나요? static 선언해준 char형 prec에서 최대 숫자는 3인데..