필자의 중위 점을 포스트 픽스 코드로 만들려고했는데, 중괄호없이 작동하지만, 중괄호를 차지할 부분을 포함 시키려고하면, 코드의 주요 부분이 충돌한다. :내 인피니드 코드가 작동하지 않는다
for (i=0; i<characters.length; i++)
{
if (characters[i]=='*' || characters[i]=='/' || characters[i]=='+' || characters[i]=='-' || characters[i]=='(' || characters[i]==')'){
if (postfix.empty() && characters[i]!=')')
postfix.push(characters[i]);
else if (!postfix.empty()){
if (characters[i]=='(')
postfix.push(characters[i]);
if (characters[i]=='*' || characters[i]=='/')
priority2=1;
if (characters[i]=='+' || characters[i]=='-')
priority2=0;
if (characters[i]==')'){
while (postfix.peek()!='(') //loop until we see the closing bracket
System.out.print(postfix.pop()); //pop everything till we see the closing bracket
postfix.pop(); //to pop the bracket
}
if (!postfix.empty())
peeked=postfix.peek();
if (peeked=='*' || peeked=='/')
priority=1;
if (peeked=='+' || peeked=='-')
priority=0;
if (priority2>priority)
postfix.push(characters[i]);
else{
while (!postfix.empty())
System.out.print(postfix.pop());
postfix.push(characters[i]);
}
}
}
else
System.out.print(characters[i]);
}
while (!postfix.empty())
System.out.print(postfix.pop());
도움이 되셨습니까? 그것은 중괄호에 관해서는 휴식.
자신의 코드를 _really_ 디버깅해야합니다. –
나는 시도했다. 나는 여러 번 지나갔다. 나는 그것들이 터지기 전에 (인쇄하기 전에) 여전히 중괄호를 인쇄하는 이유를 알지 못한다. – user2883071
디버거를 다운로드하여 사용한다. –