님들
중위표기식을 전위표기식으로 바꾸는건 하겟는데,
전위표기식으로 바꾼다음 이거 계산하는 걸 어찌 코딩해야할까 / ㅠ
일단 내가 한거 보여줄게 막히는 부분이 있어서
public class Calculator {
private char[] exp;
public int evalPrefix(char[] prefix){
LinkedStack S = new LinkedStack();
exp = prefix;
int opr1, opr2, value;
char testCh;
for(int i=0; i<7; i++){
testCh = exp[i];
if(testCh != '+' && testCh != '-' && testCh != '*' && testCh != '/'){
S.push(testCh);
}
else{
opr2 = S.pop();
opr1 = S.pop();
switch(testCh){
case '+' : S.push(opr1+opr2); break;
case '-' : S.push(opr1-opr2); break;
case '*' : S.push(opr1*opr2); break;
case '/' : S.push(opr1 / opr2); break;
}
}
}
return S.pop();
}
}
여기서 문제가 되는게,,
S.push 메소드를 나는 char로 구현해서 그런지 S.push(opr1+opr2) 이부분이 오류가나네 ㅠ
이거 opr1+opr2 부분은 지금 int형인데 이걸 매개변수로 char로 넘기는 방법 없을까 ??
push 메소드 보여줄게
public void push(char item){
StackNode newNode = new StackNode();
newNode.>
newNode.link = top;
top = newNode;
}
댓글 0