Você está na página 1de 20

Algoritmos e Estruturas de Dados II

IEC013

TAD,
Pilhas e Filas

Prof. Csar Melo


TAD: Definio

SE programa = definio de um tipo de


dados + operao sobre dados desse tipo +
restries sobre dados e operaes ENTO
Tipo Abstrato de Dados (TAD)
Abstrato significa a forma de
implementao desconhecida.
Um TAD caracterizado pela finalidade do
tipo e de suas operaes, e no pela forma
como est implementado.
TAD: Definio

Criando um tipo abstrato, podemos


esconder a estratgia de
implementao;
Quem usa o tipo abstrato no precisa
conhecer a forma como ele implementado;
A conseqncia a facilidade de
manuteno e o re-uso de cdigos.
TAD: Caractersticas

Conjunto de dados, operaes e


restries integrados em uma nica
estrutura;

Encapsulamento (ocultao de
informao):
estruturas de dados escondidas;
interface bem definida.
Exemplos de TAD: Pilhas e Filas

Ambas possuem regras para acesso a


seus dados;
As operaes de recuperao de dados
so destrutivas;
Podem ser implementadas como listas
encadeadas, mas no necessariamente...
Pilha, caractersticas

uma das estruturas de dados mais simples;


Todo o acesso a seus elementos feito atravs
do seu topo;
Quando um novo elemento introduzido na
pilha, ele passa a ser o elemento do topo, e o
nico elemento que pode ser removido da pilha
o do topo.
Pilhas

Implementa uma poltica o primeiro que


sai o ltimo que entrou (LIFO last in,
first out).
Existem duas operaes bsicas que
devem ser implementadas numa estrutura
de pilha:
operao para empilhar (push) um novo
elemento, inserindo-o no topo,
operao para desempilhar (pop) um
elemento, removendo-o do topo
Pilhas
:: Push()

topo
b
topo
a a
topo
x x x
m m m
k push(a) k push(b)
k
Pilhas
:: Pop()

topo
b
a topo
a
topo
x x x
m m m
k pop(b) k pop(a)
k
Pilhas
:: Operaes bsicas

Criar uma estrutura de pilha;


Inserir um elemento no topo (push);
Remover o elemento do topo (pop);
Verificar se a pilha est vazia;
Verificar se a pilha est cheia(se pilha
esttica)
Liberar a estrutura de pilha
Filas

So listas lineares que adotam a poltica FIFO


(First In First Out o primeiro que entra o
primeiro que sai) para a manipulao de
elementos.
As inseres(enQueue()) so feitas no final da
fila.
As remoes(deQueue()) so feitas no incio da
fila.
A consulta na fila feita desenfileirando
elemento a elemento at encontrar o elemento
desejado ou chegar ao final da fila.
Filas
:: Aplicaes

Alocao de recursos para impresso de


documentos em uma impressora (spooler
de impresso).
Atendimento de processos requisitados ao
um sistema operacional.
Ordenar o Encaminhamento de pacotes de
dados em uma rede de computadores;
Buffer para gravao de dados em mdia.
Filas
:: Aplicaes

fila para pouso

fila para decolagem


Filas de tamanho varivel
:: enQueue()

X M K

A X M K

B A X M K
Filas de tamanho varivel
:: deQueue()

B A X M K

B A X M

B A X
Filas de tamanho fixo

X M K

A
A X M K

B
B A X M
Filas
:: Operaes bsicas

Criao
Destruio
Insero de um elemento
Remoo de um elemento
Intercalao
Concatenao
Diviso de uma fila em duas
Resumo

TAD: Uma forma de representao de um


conceito em que os detalhes de
implementao so ocultados do usurio.
Ajudar a manuteno do cdigo;
O TAD pilha
Duas principais operaes: Push() e Pop();
O TAD fila
Duas principais operaes: enqueue() e
dequeue();
Exerccios

Apresente um TAD que represente um PONTO no


sistema cartesiano de coordenadas.

Apresente um TAD que represente um CRCULO cujo


o centro dado por uma coordenada do sistema
cartesiano.

Apresente um TAD que represente uma CILINDRO.


Exerccios

Apresente um TAD para uma fila de um pequeno


mercado de bairro. Seu TAD deve ser capaz de
responder qual o tempo mdio de espera na
fila. Considere que:
cada cliente chega disposto a espera o tempo que for
necessrio para ser atendido;
O tempo de atendimento de cada cliente dado por duas
vezes o nmero de itens que ele levou para a fila.
Todo cliente que chega para ser atendido consulta o
relgio e registra a hora em que ele chegou na fila.

Você também pode gostar