A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.

Apresentações semelhantes


Apresentação em tema: "Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas."— Transcrição da apresentação:

1 Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas

2 O único elemento que pode ser removido da pilha é o do topo.
(1) Pilhas Definição... A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo Quando um elemento novo é introduzido na pilha, ele passa a ser o elemento do topo O único elemento que pode ser removido da pilha é o do topo. Análogo a uma pilha de pratos

3 O processo de inserção e remoção acontecem no topo da pilha Operações:
(1) Pilhas Operações O processo de inserção e remoção acontecem no topo da pilha Operações: push (empilhar) e pop (desempilhar)

4 O tipo Pilha armazena dados
Queues 3/25/2017 4:20 PM (1) Pilhas Resumindo... O tipo Pilha armazena dados Inserções e remoções seguem o esquema “último a entrar é o primeiro a sair” (last-in first-out ou LIFO) Inserções e remoções são feitas no topo da pilha Exceções Pode acontecer na tentativa de retirar um elemento de uma pilha vazia Tem de usar a operação vazia() para checar a pilha antes de retirar um elemento Pode acontecer na tentativa de adicionar um elemento em uma pilha cheia Tem de checar se a pilha está cheia antes de adicionar o novo elemento 4

5 Implementação de compiladores
(1) Pilhas Aplicações... É a estrutura de dados mais utilizada em programação, sendo inclusive implementada diretamente pelo hardware da maioria das máquinas modernas. Implementação de compiladores Pilha de execução de funções chamadas Avaliação de expressões

6 Implementação em vetor
(1) Pilhas Implementação em vetor Fixar o número máximo de elementos na pilha O tipo Pilha possui dois atributos: n é o número de elementos armazenados no vetor Vet é o vetor de elementos pilha vazia se caracteriza por n = 0 pilha cheia se caracteriza por n = MAX

7 Implementar com lista encadeada
(1) Pilhas Operações push (elemento) elemento pop() boolean ehVazia() imprime() Implementar com vetor Implementar com lista encadeada

8 (2) Filas Definição Uma fila é um conjunto ordenado de itens a partir do qual pode-se eliminar itens numa extremidade (chamada início da fila) e no qual pode-se inserir itens na outra extremidade (chamada final da fila). Uma fila de banco ou no ponto de ônibus Um grupo de carros aguardando sua vez no pedágio

9 O tipo Fila armazena dados
Queues 3/25/2017 4:20 PM (2) Filas Resumindo... O tipo Fila armazena dados Inserções e remoções seguem o esquema “primeiro a entrar é o primeiro a sair” (first-in first-out ou FIFO) Inserções são feitas no final da fila e remoções são feitas no início da fila As principais operações são: insere(elemento) insere um elemento no final da fila retira(): elemento Remove e retorna o elemento do início da fila vazia():booleano Indica se não há nenhum elemento armazenado 9

10 insere(q, A); insere(q, B); insere(q, C); x = retira (q);
(2) Filas Operações insere(q, A); insere(q, B); insere(q, C); x = retira (q); insere(q, D); insere(q, E)

11 A operação insere sempre pode ser executada
(2) Filas Cuidado... A operação insere sempre pode ser executada A operação retira só pode ser aplicada se a fila não estiver vazia; Remoção de uma fila vazia causa underflow. A operação vazia é sempre aplicável na operação retira .

12 Operações auxiliares: Exceções
(2) Filas Resumindo... Operações auxiliares: início(): elemento Retorna o elemento do início da fila sem removê-lo tamanho(): inteiro Retorna o número de elementos armazenados Exceções Pode acontecer na tentativa de retirar um elemento de uma fila vazia Tem de usar a operação vazia() para checar a fila antes de retirar um elemento Pode acontecer na tentativa de adicionar um elemento em uma fila cheia Tem de checar se a fila está cheia antes de adicionar o novo elemento

13 Acesso a recursos compartilhados
(2) Filas Aplicações Acesso a recursos compartilhados Fila de impressão Quando uma impressora é compartilhada por várias máquinas Usa-se a estratégia mais simples de tratar todas as requisições com a mesma prioridade e imprimir os documentos na ordem em que foram submetidos – o primeiro submetido é o primeiro a ser impresso

14 Implementação com vetor
(2) Filas Implementação com vetor Fixe o número máximo N de elementos na fila O processo de inserção e remoção em extremidades opostas fará com que a fila “ande” no vetor

15 Implementação com vetor
(2) Filas Implementação com vetor Problema: em um dado instante, a parte ocupada do vetor pode chegar à última posição Solução: podemos incrementar as posições do vetor de forma “circular” se o último elemento da fila ocupa a última posição do vetor, inserimos os novos elementos a partir do início do vetor

16 Implementação com vetor
(2) Filas Implementação com vetor Fixar o número máximo de elementos na pilha O tipo Fila possui três atributos: ini marca a posição do próximo elemento a ser retirado da fila; fim marca a posição (vazia), onde será inserido o próximo elemento Vet é o vetor de elementos a fila vazia se caracteriza por ter ini == fim fila cheia se caracteriza por incr(fim) == ini a posição indicada por fim permanece sempre vazia

17 Implementação com vetor
(2) Filas Implementação com vetor Os índices do vetor são incrementados de maneira que seus valores progridam “circularmente” Função auxiliar responsável por incrementar o valor de um índice int incr(int i) { return (i+1)%N; }

18 Implementar com lista encadeada
(2) Filas Operações boolean ehVazia () insere(elemento) elemento retira() imprime() Implementar com vetor Implementar com lista encadeada


Carregar ppt "Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas."

Apresentações semelhantes


Anúncios Google