olá pessoas…
estou fazendo estrutura de dados na unisul,
mais não estou conseguindo entender na pratica o que seria um Pilha.
eu vi que possui metodos top, push, node… mais não peguei mesmo,
não entrou… falaraum que é a materia que mais roda na unisul em computação,
e estou com medo, você podereiam me ajudar e explicar o que esses metodos fazem?
Se possivel, com um exemplo… porque, o que é uma pilha? Oo
tipo, seria o primeiro numero a entrar é o ultimo a sair?
desculpa qualquer coisa, mas busquei aqui no forum e vi que tem assuntos sobre isso,
mais jah com uma abrangencia mais elevada…
Numa pilha, o funcionamento é LIFO, ou seja, o último elemento colocado na pilha será o primeiro a ser retirado. No link elucida melhor.
Até!
Bravox
para vc entender como uma pilha funciona imagine uma pilha de livro o ultimo livro a ser colocado na pilha vai ser o primeiro a sair ou seja primeiro a entrar ultimo a sair ( First In, Last Out ) e os métodos mais comuns são
pop() - remove o ultimo item adicionado na pilha
push() - adiciona um item no topo da pilha
top() - retorna o item do topo da pilha
empty() - verifica se a pilha está vazia
em java existe uma classe que se chama Stack do pacote java.util que simula uma pilha de uma olhada na documentação para maiores informações da Classe Stack http://java.sun.com/j2se/1.4.2/docs/api/
qualquer coisa estamos ai
Bravox
Lembrado que existe diferentes formas de implementar uma pilha , duas que eu conheço são através de array , e lista encadeada !!
Z
Zagaia
Então tá…
vou dar uma olhada nesses topicos passados!
e muito obrigado pela atenção!
vou estudar direitinho, depois volto a postar!
Obrigado!!
Z
Zagaia
bom,
dei uma olhadinha na classe stack... e fiz ela..
porem esta ocorrendo um erro:
java.lang.StackOverflowError
Exception in thread "main"
Não sei o que pode ser...
meu código:
Classe Stack:
publicclassStackextendsList{/** * Construtor da classe. */publicStack(){super();}/** * Método push, adiciona um item no topo da pilha. */publicvoidpush(Objecto){push(o);}/** * Método pop, remove o ultimo item adicionado na pilha. */publicObjectpop()throwsEmptyStackException{returnpop();}/** * Método empty, verifica se a pilha está vazia. * @return */publicbooleanisEmpty(){returnisEmpty();}/** * Método print - Mostra. */publicvoidprint(){print();}}
Classe Tester:
publicclassStackTest{publicstaticvoidmain(String[]args){// Recebe o conteudo da outra classe (Stack). Stackio_object=newStack();// Cria os objetos para armazenar na pilha.Integerln=newInteger(0);Integerln_1=newInteger(1);Integerln_2=newInteger(2);Integerln_3=newInteger(3);// Utiliza o método push e print. io_object.push(ln);io_object.print();io_object.push(ln_1);io_object.print();io_object.push(ln_2);io_object.print();io_object.push(ln_3);io_object.print();// Variavel para o método pop. ObjectremoveObj=null;try{while(true){// Utiliza o método pop. removeObj=io_object.pop();// Mostra na tela o que foi removido. System.out.println(removeObj.toString()+"removeu");// Utiliza o método print.io_object.print();}}catch(Exceptione){// Mostra o pau e.printStackTrace();System.err.println("\n"+e.toString());}}}
Alguem poderia ajudar?
Obrigado!
T
thingol
O ministério da Saúde adverte: “while(true)” pode fazer mal à sua saúde.
Você tem de sair desse loop de alguma maneira
T
thingol
Que “pop” você está chamando? Dessa maneira vai chamar a própria rotina, e isso vai continuar até que o Java “abra o bico”. Provavelmente você quis dizer:
Z
Zagaia
Poisé…
viajei, faltou o break…
mais tipo, eu não consigo dar super.pop =/
o que faço?
LPJava
pense em uma pilha como uma caixa de sapato que vc vai colocando uma sobre a outra…vamos dizer que vc tem 3 caixas… a primeira que vc colocou e ta no fim vai ser a ultima a sair… e a ultima que vc colocou vai ser a primeira a sair… ou seja a caixa de numero 3.
flw!!
R
raghy
Bravox:
para vc entender como uma pilha funciona imagine uma pilha de livro o ultimo livro a ser colocado na pilha vai ser o primeiro a sair ou seja primeiro a entrar ultimo a sair ( First In, Last Out ) e os métodos mais comuns são
pop() - remove o ultimo item adicionado na pilha
push() - adiciona um item no topo da pilha
top() - retorna o item do topo da pilha
empty() - verifica se a pilha está vazia
em java existe uma classe que se chama Stack do pacote java.util que simula uma pilha de uma olhada na documentação para maiores informações da Classe Stack http://java.sun.com/j2se/1.4.2/docs/api/
qualquer coisa estamos ai
estava olhando este tópico. está legal , mas na verdade (precisa uma correção ) é o LAST IN, FIRST OUT LIFO e não FILO na fila é FIRst in, First out. FIFO.
meu professor estava dizendo que a classe Stack (pilha) do java não corresponde a uma pilha. eu não entendi. alguém sabe algo sobre isso?
Achei muito estranho porque o java, não teria porque errar nisso, além do mais usando o nome pilha em ingles e tudo…