Teste de Envio de Trabalho
Por: soldiaboy • 10/10/2016 • Trabalho acadêmico • 549 Palavras (3 Páginas) • 324 Visualizações
Para a implementação de uma Pilha, podemos escolher dois modelos de alocação de
memória, a Estática-Sequencial ou a Dinâmica-Encadeada.
Vamos começar mostrando uma implementação mais simples com alocação EstáticaSequencial
usando a linguagem Java, porém o conceito pode ser utilizado em qualquer outra
linguagem de programação
1.1. Pilha Estática
Segue abaixo uma implementação de Pilha Estática Sequencial na linguagem Java.
1. //TAD que implementa uma Pilha
1. public class Pilha {
2. private int topo; //Topo da Pilha
3. private int MAX; //Tamanho da Pilha
4. private Object memo[]; //Elementos da Pilha (objeto genérico)
5. //Método que inicializa a Pilha no estado vazia
6. public Pilha() {
7. topo=-1;
8. MAX=30;
9. memo = new Object[MAX];
10. }
11. //Método que verifica se a Pilha está Vazia
12. public boolean isEmpty() {
13. return(topo==-1);
14. }
15. //Método que verifica se a Pilha está cheia
16. private boolean isFull() {
17. return(topo==MAX-1);
18. }
19. //Método para inserir um valor na Pilha
20. public void push(Object x) {
21. if(!isFull()) {
22. topo++;
23. memo[topo]=x;
24. }
25. else {
26. System.out.println("Pilha Cheia!!");
27. }
28. }
29. //Método para exibir o conteúdo da Pilha
30. public void print() {
31. if(!isEmpty()) {
32. String msg = "";
33. for(int i=0; i<=topo; i++) {
34. msg += memo[i].toString() + ", ";
35. }
36. System.out.println("P: [ "+msg+" ]");
37. }
38. else {
39. System.out.println("Pilha Vazia!!");
40. }
41. }
42. //Método para retornar o topo da Pilha e remove-lo
43. public Object pop() {
44. if(!isEmpty())
45. return memo[topo--];
46. else
47. return null;
48. }
49. //Método que retorna o topo da pilha sem removê-lo
50. public Object top() {
51. if(!isEmpty())
52. return memo[topo];
53. else
54. return null;
55. }
56. }
Note que nas linhas 4 e 9 temos uma variável MAX que define a quantidade máxima de
elementos que iremos armazenar na pilha. Isso define a alocação como sendo estática
(quantidade
...