van infix naar postfix

Status
Niet open voor verdere reacties.

outsiders

Nieuwe gebruiker
Lid geworden
9 jun 2004
Berichten
1
Ik heb een code gemaakt van Stack en Queue volgens een opdracht zie code onderaan. Maar de volgende opdracht heb ik helemaal geen raad mee weet niet hoe de code moet maken. zie de opdracht onder de code
. Ik zou heeeeeel graag op prijs stellen dat iemand die aub aub aub please die code voor mij kan maken hoeft niet helemaal. please god bless you.

Code:
import java.util.Stack; 
import java.util.LinkedList; 
public class InfixPostFix 
{ 
     
    Stack mijnStack; 
    LinkedList mijnQ; 
     
    public InfixPostFix() 
    { 
        mijnStack = new Stack(); 
        mijnQ = new LinkedList(); 
    } 
     
        
     
    public String testQueue(String test) 
    { 
        for(int index = 0; index < test.length(); index++){ 
            String sub = test.substring(index, index+1); 
            mijnQ.add(sub); 
            } 
        String uit = ""; 
       for(int index = 0; index < test.length(); index++){ 
            String sub = (String) mijnQ.removeFirst(); 
            uit = uit + sub; 
        } 
        return uit; 
    } 
     
    public String infixNaarPostfix(String str) 
    { 
        return str; 
    } 
     
    public String stackTest(String inString) 
    { 
        for(int index =0; index< inString.length(); index++){ 
            String sub = inString.substring(index, index+1); 
            mijnStack.push(sub); 
        } 
        String uit = ""; 
        while(!mijnStack.empty()){ 
            uit  = uit + (String) mijnStack.pop(); 
            } 
            return uit; 
     } 
    
    private boolean prioriteit(String s1, String s2) // s1=operatorStack 
    { 
        if(s1.equals("*")|| s1.equals("/"))return true; 
        else if((s1.equals("+")||s1.equals("-"))&&(s2.equals("+")||s2.equals("-")))return true; 
        else return false; //BIJ HAKEN FALSE TERUG 
    } 
     
    private boolean isOperand(String s) 
    { 
        if(s.equals("a")||s.equals("b")||s.equals("c")||s.equals("d")|| 
        s.equals("e")||s.equals("f")||s.equals("g")||s.equals("h")) 
            return true; 
        else 
            return false; 
    } 
      
    private boolean isOperator(String s) 
    { 
        if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) 
            return true; 
        else 
            return true; 
       }      
     
     
}

van de invoerstring worden opeenvolgende karakters ingelezen. Deze karakters ingelezen. Deze karakters worden vervolgens bepaalde regels in de stack dan wel in de queue geplaast.
-als karakter=operand dan: in queue.
-als karakter= openhaak dan: op stack.
-als karakter=operator dan:
verwijder van stack alle opeenvolgende operatoren met prioriteit >= van de operator en plaats deze in de queue. Plaats dan de operator op stack.
-als karakter=sluithaak dan:
verwijder van stack alle karakters tot aan het eerstvolgende openhaakje en plaats deze in de queue. Verwijder de open-en sluithaken.

-zijn alle karakters van de invoerstring volgens bovenstaande verwerkt dan dienen de resterende karakters van stack naar de queue geplaatst te worden.
-maak vervolgens een nieuwe lege String aan. Zolang(while) de queue niet leeg is, verwijder de karakters(dus de substring met lengte 1) van de queue en plak die karakters aan de lege string en stuur die terug.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan