Duvida de pilha

1 resposta
E
alguem pode me dizer se esta certo? segue o codigo da pilha e do testepilha: pilha
]//Classe Pilha

import javax.swing.JOptionPane;

public class Pilha{
	
private	int tamanho;
private int posicao;
private	String conteudo[];

	//Construtor
	public Pilha(int t){
		this.tamanho=t;
		this.posicao=-1;
		this.conteudo=new String[t];
		
	}//fim do construtor

	//Metodos gerais
	
	//Metodo para empilhar
	public void Empilhar(String e){
		
		if(estaCheia())
			return;
			
			this.posicao ++; 
			this.conteudo[this.posicao]=e;
						
				 	
	}//fim do metodo Empilhar
	
	//Metodo para desempilhar
	public String Desempilhar(){
				
		if(estaVazia())
			return "";
			
			String aux= this.conteudo[this.posicao];
			
			this.posicao--; //coloca o elemento na primeira posicao
			
			this.conteudo[this.posicao]="";
			return aux; 
							
	}//fim do metodo desempilhar	
	
	public void Esvaziar(){
		
	}	
	
	//Metodo ultimo que retorna o ultimo elemento
	public String Ultimo(){
		
		return this.conteudo[this.posicao];
	
	}//fim do metodo ultimo
	
	//Metodo para verificar se a pilha esta vazia
	public boolean estaVazia(){
		
		if(this.posicao == -1){
			JOptionPane.showMessageDialog(null,"Pilha Vazia","Pilha",JOptionPane.INFORMATION_MESSAGE);
			
			return true;
			}//fim do if
		
		else
		    return false;
					
	}//fim do metodo estaVazio
	
	//Metodo para verificar se a pilha esta cheia	
	public boolean estaCheia(){
		
		if(this.posicao == this.tamanho){
		JOptionPane.showMessageDialog(null,"Pilha cheia","Pilha",JOptionPane.INFORMATION_MESSAGE);
			
			return true;
			}//fim do if
		
		else
		    return false;
			
	}//fim do metodo estaCheio
	
	//Metodo numero de elementos
	public int numElementos(){
		
		return this.posicao;
				
		}//fim do metodo numElementos

}//fim da classe


agora do testepilha ta dando erro no construtor, alguem pode me ajudar?

//Classe TestePilha

public class TestePilha{
	
	//metodo main
	public static void main(String args[]){
		
		//cria atributo do tipo Pilha
		Pilha testepilha=new Pilha();
		
		System.out.println(testepilha.numElementos());
		System.out.println(testepilha.estaCheia());
		System.out.println(testepilha.Desempilhar());
		System.out.println(testepilha.estaVazia());	
		
		System.exit(0);	
		
	}//fim do metodo main
}//fim da classe TestePilha
como faço para mostrar na tela a pilha de vetores usando os metodos? [size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

1 Resposta

FieroddPJ

Ola eliza!

eu so dei uma olhada rapida, mas ai vai

seu constrtor pede um inteiro, correspondente ao tamanho da pilha, vc não esta passando esse inteiro

no seu metodo desempilha vc recupera o ultimo elemento empilhado, depois desce 1 indice, e seta o conteudo do indice anterior pra “”

tipo
indice 10 = “10”
this.posicao-- -> indice 9 agora
indice 9 = “”

lembre-se q indices de arrays começam do zero, seu metodo estaCheia
faz essa verificação -> if(this.posicao == this.tamanho)

so q se vc criar um array de 10 posições (tamanho = 10) a maior posição sera 9!!

:wink:

Criado 19 de agosto de 2006
Ultima resposta 19 de ago. de 2006
Respostas 1
Participantes 2