Você está na página 1de 13

ESTRUTURA DE DADOS

PILHA E FILAS
Francisco Bruno alfimcz@gmail.com

Pilha - Viso geral

Introduo

Uma Pilha uma estrutura linear onde as incluses, excluses e consultas so feitas sempre em um mesmo extremo o topo. Metforas da vida real para as pilhas incluem pilhas de pratos, cartas de jogo ou livros, em que possvel ver somente o elemento que se encontra mais acima da pilha. A regra de incluso e excluso da pilha, denominadas respectivamente de push e pop a LIFO(last-in-first-out), ou seja, ltimo a entrar primeiro a sair.

Pilha - Exemplos fsicos

Pilha - Operaes bsicas


Top(P) acessa e retorna o elemento localizado no topo da pilha P Pop(P) remove e retorna o elemento posicionado no topo da pilha P(diminui o tamanho da pilha) Push(P,X) acrescenta o elemento X ao topo da pilha P(aumenta o tamanho da pilha)

Pilha - Operaes especiais


Init(P) inicializa a pilha P no estado vazia isEmpty(P) verifica se a pilha P est vazia isFull(P) verifica se a pilha P est cheia, tanto isFull como isEmpty retornam um valor boleano sobre o estada da pilha.

Pergunta: Se a pilha uma estrutura dinmica como ela pode estar cheia?

Pilha - Exemplos de operaes

Pilha Mo na massa

Grficamente mostre a situao da pilha P, incialmente vazia, aps a execuo de cada uma das operaes a seguir:

Push(P,a); Push(P,b); Push(P,c); Push(P,Top(P)); Push(P,Pop(P)); Pop(P); Push(P,e); Pop(P)

Usando uma pilha escreva um programa para ler uma frase e imprimi-la de trs para frente; Altere o programa anterior para que a pilha suporte no mquina 10 elementos e escreva duas rotinas que verifiquem:

Se a pilha est cheia Se a pilha est vazia Essa rotina deve ser usada pelas rotinas Push e Pop.

Escreva uma rotina que usa uma pilha para determinar se uma dada cadeia de caracteres ou no palndromo. Exemplo: subinoonibus um palndromo.

Fila - Viso geral

Introduo

O que diferencia a fila da pilha a ordem de sada dos elementos: enquanto na pilha o ltimo que entra o primeiro que sai, na fila o primeiro que entra o primeiro que sai (a sigla FIFO first in, first out usada para descrever essa estratgia).

A idia fundamental da fila que s podemos inserir um novo elemento no final da fila e s podemos retirar o elemento do incio.
A estrutura de fila uma analogia natural com o conceito de fila que usamos no nosso dia a dia: quem primeiro entra numa fila o primeiro a ser atendido (a sair da fila).

Um exemplo de utilizao em computao a implementao de uma fila de impresso. Se uma impressora compartilhada por vrias mquinas, deve-se adotar uma estratgia para determinar que documento ser impresso primeiro.

Fila - Exemplos fsicos

Fila - Operaes bsicas


Top(F) acessa e retorna o elemento localizado no inicio da Fila F Pop(F) remove e retorna o elemento posicionado no inicio da fila F(diminui o tamanho da fila) Push(F,X) acrescenta o elemento X ao final da fila F(aumenta o tamanho da fila)

Fila - Operaes especiais


Init(F) inicializa a fila F no estado vazia isEmpty(F) verifica se a fila F est vazia isFull(F) verifica se a fila F est cheia, tanto isFull como isEmpty retornam um valor boleano sobre o estada da fila.

Fila Problema

Um grande problema no uso da estrutura de dados em Fila a reutilizao da mesma depois que alguns elementos foram excludos.

Fila Problema

A soluo para este problema se implementar uma Fila Circular.