Recognizing Parenthesis in an Infix to Postfix Conversion
Here is a java class I had to make for my data structures class. I know that this is far from the best way to do the conversion, but it is off of the pseudo code he gave in class and is therefor what he is looking for. The only thing he left for us to figure out on our own was for how the algorithm recognizes parenthesis. The program runs just fine when I input an expression without them, but the minute I add parenthesis the program won't run, specifically, through some debugging, I found that the close parenthesis does this ")". I marked with comments where the actual parenthesis part of the method is. Thanks for the help!
public class InToPost {
private Stack theStack;
private String infix;
private String postfix = "";
public InToPost(String in) {
infix = in;
int stackSize = infix.length();
theStack = new Stack(stackSize);
}
public String convert(){
for (int i = 0; i < infix.length(); i++) {
char ch = infix.charAt(i);
if (Character.isDigit(ch)){
postfix = postfix + ch;
}
//Check for right parenthesis and empty stack until left parenthesis is read
else if ((ch == ')') && (!theStack.isEmpty())){
while (theStack.topStk() != '('){
Re: Recognizing Parenthesis in an Infix to Postfix Conversion
Also, here is the error I get:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Stack.topStk(Stack.java:18)
at InToPost.convert(InToPost.java:23)
at InToPost.main(InToPost.java:66)
Bookmarks