alguem consegue verificar porque está dando erro? Já procurei varias vezes e não achei…
public class Nodo {
/*3. Faça um sistema com o conceito de pilha (de forma manual) que lê números inteiros
maiores que 0 (zero) e os guarda em uma pilha de forma manual (implemente classes e
métodos que possibilitem isso), a leitura termina ao ser digitado o número 0 (zero). Monta
uma segunda pilha com os elementos pares da primeira pilha. A primeira pilha ficará com os
impares e a segunda pilha com os pares. Além das duas pilhas citadas deve ser usada mais
uma única pilha auxiliar. Imprima todo o conteúdo de cada pilha.*
* @param args
*/
private int elemento;
private Nodo next;
public Nodo(int s)
{
elemento=s;
}
public void setElemento(int elemento) {
this.elemento = elemento;
}
public int getElemento() {
return elemento;
}
public void setNext(Nodo next) {
this.next = next;
}
public Nodo getNext() {
return next;
}
}
public class Pilha {
private Nodo topo;
private int tamanho;
public Pilha()
{
topo=null;
tamanho=0;
}
public Nodo getTopo() {
return topo;
}
public void setTopo(Nodo topo) {
this.topo = topo;
}
public int getTamanho() {
return tamanho;
}
public void setTamanho(int tamanho) {
this.tamanho = tamanho;
}
public boolean estaVazia()
{
boolean resultado=false;
if(topo==null)
{
resultado=true;
}
return resultado;
}
public void push(int s){
if(topo==null){
topo=new Nodo(s);
tamanho ++;
}
else{
Nodo novoNodo= new Nodo(s);
novoNodo.setNext(topo);
topo=novoNodo;
tamanho++;
}
}
public int pop(){
int conteudoPilha=0;
if(estaVazia()==true){
System.out.println("ta vazia");
} else{
conteudoPilha=topo.getElemento();
Nodo nodoAuxiliar;
nodoAuxiliar=topo;
topo=topo.getNext();
nodoAuxiliar=null;
tamanho--;
}
return conteudoPilha;
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int numero = 100;
Scanner sc=new Scanner(System.in);
Pilha pilha=new Pilha();
Pilha pilha2=new Pilha();
Pilha pilhaAux= new Pilha();
Nodo nodoAuxiliarImpressao;
while(numero!=0){
System.out.println("Digite um inteiro para colocar na pilha");
numero=sc.nextInt();
if(numero>0)
pilha.push(numero);
}
for(int i=0;i<pilha.getTamanho();i++)
{
if(pilha.getTopo().getElemento()%2==0)
{
pilha2.push(pilha.getTopo().getElemento());
pilha.pop();
}
else
{
pilhaAux.push(pilha.getTopo().getElemento());
pilha.pop();
}
}
for(int i=0;i<pilhaAux.getTamanho();i++)
{
pilha.push(pilha.getTopo().getElemento());
pilhaAux.pop();
}
nodoAuxiliarImpressao=pilha.getTopo();
for(int i=0;i<pilha.getTamanho();i++){
System.out.println("Pilha 1 Elemento"+ i+":"+nodoAuxiliarImpressao.getElemento());
nodoAuxiliarImpressao=nodoAuxiliarImpressao.getNext();
}
nodoAuxiliarImpressao=null;
nodoAuxiliarImpressao=pilha2.getTopo();
for(int i=0;i<pilha2.getTamanho();i++){
System.out.println("Pilha 2 Elemento"+ i+":"+nodoAuxiliarImpressao.getElemento());
nodoAuxiliarImpressao=nodoAuxiliarImpressao.getNext();
}
}
}