I've been working on this Homework for quite a while now trying to convert infix to postfix, but I don't know my code only works for something like "a+b;", not something like (a*(b+c)+d)+e;.
public static String convertit(String infix) { String postfix = ""; Character char1; char temp2; LinkedStack<Character> infixstack = new LinkedStack<Character>(); for (int index = 0; index < infix.length() ; index++) { char1 = infix.charAt(index); char temp = char1; if (Character.isLetter(char1)) { postfix += char1; } else // else1 { if(char1.equals('+')) // can also use case switch statement... which actually is a better way to go { if(infixstack.isEmpty()) { infixstack.push(char1); } else { if(infixstack.peek().equals('*')) { while(infixstack.peek().equals('*')) { postfix+=infixstack.pop(); } infixstack.push(char1); // the new + } else { if (infixstack.peek().equals('+')) { postfix+= infixstack.pop(); infixstack.push(char1); } else if (infixstack.peek().equals('(')) { infixstack.push(char1); } } } } else { if(char1.equals('*')) { // put all the other code here for "*".... } else { if(char1.equals('(')) { // code goes here } else { if(char1.equals(')')) { // code goes here } else { if (char1.equals(';')) { while(!infixstack.isEmpty()) { temp2=infixstack.pop(); if (temp2!='(') postfix+=temp2; } } } } } } } }