Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
TOMÁS DE MOÇAMBIQUE
CURSO DE TECNOLOGIAS DE SISTEMAS DE
INFORMAÇÃO
Estrutura de Dados e Algoritmos
Ano 2007
Aula 6:Pilhas
Conteúdo
1. Conceito
2. Operações
3. Implementação
4. Exercícios práticos
1
1. Conceito
Uma Pilha é uma colecção de dados, ou seja, é uma estrutura de dados de comprimento
variável que contém múltiplos elementos.
Uma pilha é uma lista de informações com operações especiais de acesso. O acesso aos
elementos da pilha é feito sempre pela mesma extremidade, isto é, a extermidade
escolhida é sempre usada para todas as operações, seja de inserção, eliminação ou
pesquisa, e é chamada de TOPO. Esta regra é também conhecida como LIFO (Last In
First Out).
Para se aceder a um elemento da pilha, é necessário que ele esteja no TOPO, caso
contrário, todos os elementos que estão antes dele devem ser retirados.
Uma Pilha é representada através de um vector (S[], por exemplo) com dimensão N. O
Ponteiro TOP representa o topo da pilha.
2
Exemplo prático: Um exemplo comum de pilha, que permite a selecção de seu elemento
superior, é a pilha de pratos num restaurante. Os pratos em pilha fazem com que a pessoa
tenha acesso ao prato superior, a remoção de um prato superior faz com que a pessoa
tenha acesso ao próximo prato, se colocado um novo prato na pilha, esse será o primeiro
a sair. Assim, para aceder ao último prato, deve-se antes retirar os que estão por cima
dele.
Nas pilhas, operações de inserção e eliminação são comumente citadas como operações
"push" e "pop", respectivamente. O único elemento directamente acessível de uma pilha é
seu elemento superior. O elemento menos acessível é seu elemento inferior.
3
Operações Associadas:
3. Implementação de Pilhas
A pilha pode ser implementada por array's ou listas. Abaixo está ilustrada a
implementação de uma pilha que pode guardar qualquer tipo de objectos.
//constructor
public Stack () {
this.array = new Object[size];
this.index = 0;
}
}
4
1) Verificar se a pilha está ou não vazia. Empty()
5
4) Devolver o Elemento que está no Topo da Pilha Top()
6
3.2 Implementação de Pilha usando Lista
A figura seguinte mostra uma pilha representada como uma lista ligada linear:
//constructor
public Node(Object anItem){
item = anItem;
next = null;
}
private Node top; // ponteiro para o nodo que está no topo da pilha
//métodos de acesso
public Object getItem(){
return item;
}
7
1) Verificar se a pilha está ou não vazia. Empty()
8
4. Exercícios
1) Mostrar o conteúdo de uma pilha implementada tanto em array como usando lista
(Print()).
3) Suponha que uma pilha que implementa uma lista é composta por elementos do
seguinte tipo que compoem a classe PilhaLista:
public Node
{
String nome;
Node next;
}
9
4) Uma palavra é uma palíndrome se a sequência de letras que a forma é a mesma
seja ela lida da esquerda para a direita ou vice-versa. Exemplos: arara, rairar,
hanah. Escreva o método palindrime() que, dada uma palavra, retorne true caso a
palavra seja uma palíndrome, e false caso contrário.
________________________________________________________________________
Docentes regentes:
Rossana Abdul Carimo
Hamilton Isaias Mutaquiha
10