import java.util.Scanner;
public class Tester {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char c = 'x';
Queue q1 = new Queue();
Stack s1 = new Stack();
s1.push('#');
Queue q2 = new Queue();
q1.enqueue('#');
while (c != '#') {
System.out.println("Enter a character: ");
c = input.next().charAt(0);
q1.enqueue(c);
}
while (c != '#') {
c = (char) q1.dequeue();
if (!operator(c)) {
q2.enqueue(c);
}
}
q1.print(q1);
System.out.println();
q2.print(q2);
}
public static boolean operator(char c) {
char op = 'x';
boolean isOperator;
switch (op) {
case '*':
case '/':
case '^':
case '+':
case '-':
isOperator = true;
break;
default:
isOperator = false;
break;
}
return isOperator;
}
}
Le but de c'est pour moi d'entrer des caractères dans la file q1, puis alors que le caractère ISN 't a #, il devrait être retiré de q1 tant que le personnage n'est pas un opérateur et le mettre en file d'attente dans q2. Cependant, aucun de mes opérateurs de q1 n'est retiré et mis en file d'attente dans q2, ce qui devrait se produire à partir des lignes 20-23.Impossible DEQUEUE les opérateurs d'une file d'attente à l'autre en vérifiant si le caractère est un opérateur par une méthode booléenne qui utilise changer
Je ne pense pas que cela aide depuis que j'ENQUEUE un # au début du code. – tbadam
Avez-vous essayé? Vous vérifiez 'c' pas q1 dans la condition! – granmirupa
Oui, il imprime toujours le résultat et tout reste en q1. – tbadam