Stack Overflow en español Asked by Pablo Leon on December 9, 2021
Así se agregan los números a la pila ahora lo se tendrían que hacer es ordenarlos de menor a mayor utilizando únicamente pilas.
Pila pila = new Pila();
// Llena la pila.
pila.push( new Nodo(6) );
pila.push( new Nodo(9) );
pila.push( new Nodo(12) );
pila.push( new Nodo(62) );
pila.push( new Nodo(21) );
La forma más sencilla de hacerlo es utilizando dos pilas. La pila original, y una auxiliar.
Entonces lo que tienes que hacer es:
pila.isEmpty() && pila.peek().nodoValue > newNodeValue
, donde newNodeValue
es el valor del nuevo nodo a insertar.peek
que sea menor al valor a insertar, puedes ingresar el nuevo nodo a la pila.Te dejo un repl.it con el código para que veas como funciona. En mi caso use el Stack
que viene en Java
, pero puedes hacer que funcione con la clase que tu hayas creado.
https://replit.com/@JacoboTapia/OrderedStack#Main.java
Answered by Jacobo on December 9, 2021
Podrías enviar los datos de la pila a un array y ordenarlo:
int o = 0;
for(int i=0;!pila.empty;i++){
vec[i] = pila.pop();//no estoy seguro si lo debuelve en int o hay que convertirlo
o++;
}
vec.sort();//de forma ascendente
for(int i=0;i<=o;i++){
pila.push(vec[i]);
}
Espero te sirva. ^-^
Answered by Randy Jesús on December 9, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP