Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Stack;
- @SuppressWarnings("serial")
- public class NumbersStack extends Stack<Integer>{
- /**
- * Método que apila un número de manera que la pila de números esté ordenada
- * de menor a mayor desde el fondo hacia la cima
- * @param number: número entero que se va a apilar
- * Pre: un número entero
- * Pos: no retorna nada, la pila queda ordenana de menor a mayor
- */
- public void pushNumber(Integer number) {
- if(this.empty())
- //Si la pila está vacia, se agrega el número
- this.push(number);
- else {
- if(this.peek() <= number)
- //Si el número de la cima no es mayor, se agrega el número
- this.push(number);
- else {
- Stack<Integer> aux = new Stack<Integer>();
- //Se guardarán los números en una pila auxiliar, desempilando
- //hasta que se verifique que la cima sea menor al número, o
- //en el peor de los casos, hasta que no queden números por
- //desempilar
- while(!this.isEmpty() && this.peek() >= number) {
- aux.push(this.pop());
- }
- //Se agrega el número a la pila
- this.push(number);
- //Se agregan los números de la pila auxiliar a la pila original
- while(!aux.isEmpty()) {
- this.push(aux.pop());
- }
- }
- }
- }
- public void print() {
- for(Integer number : this) {
- System.out.println(number);
- }
- System.out.println("\nFondo de la pila: " + this.firstElement());
- System.out.println("\nCima de la pila: " + this.peek());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement