Ich arbeite mit einem Java-Stack, und ich möchte wissen, ob der Stapel mindestens 2 Elemente an der Spitze hat. Ich bin auf nur die Methoden in Stack beschränkt und kann Dinge wie .add() nicht verwenden.Wie überprüft man, ob die obersten zwei Elemente des Stapels existieren?
Mein aktuelles Problem ist, wenn der Wert eines Elements 0 ist. Ich muss mit positiven, negativen und 0-Zoll umgehen. Hier ist mein Code für das Verfahren in Frage:
public static <E> boolean hasTwoElements(Stack<E> stack) {
int temp1 = 0;
int temp2 = 0;
boolean happened = false;
if (!stack.isEmpty()) {
//check if the assignment is success
happened = ((temp1 = (java.lang.Integer) stack.pop()) != 0)
&& ((temp2 = (java.lang.Integer) stack.pop()) != 0);
if (happened) { //if the 2 assignments happened
stack.push((E) new Integer(temp2)); //reverse order b/c popped in order
stack.push((E) new Integer(temp1));
return true;
}
}
return false;
}
Um genauer zu sein, muss ich wissen, ob eine Zuordnung erfolgreich ist oder nicht.
@Andreas 'Ich bin beschränkt auf nur die Methoden in Stack' ... haben Sie Ihre eigenen Forschung und lesen Sie die vollständige Frage? Höchstwahrscheinlich ist dies eine Hausaufgabenfrage, die entworfen wurde, um zu sehen, ob der OP Stack versteht. –