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

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

Prof. Frederico Brito Fernandes Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.

Apresentações semelhantes


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

1 Prof. Frederico Brito Fernandes Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas

2 Frederico Brito Fernandes 2 Estrutura, Pesquisa e Ordenação de Dados 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 Definição... (1) Pilhas

3 Frederico Brito Fernandes 3 Estrutura, Pesquisa e Ordenação de Dados O processo de inserção e remoção acontecem no topo da pilha Operações: –push (empilhar) e pop (desempilhar) Operações (1) Pilhas

4 Frederico Brito Fernandes 4 Estrutura, Pesquisa e Ordenação de Dados 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 Resumindo... (1) Pilhas

5 Frederico Brito Fernandes 5 Estrutura, Pesquisa e Ordenação de Dados É 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 Aplicações... (1) Pilhas

6 Frederico Brito Fernandes 6 Estrutura, Pesquisa e Ordenação de Dados 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 Implementação em vetor (1) Pilhas

7 Frederico Brito Fernandes 7 Estrutura, Pesquisa e Ordenação de Dados push (elemento) elemento pop() boolean ehVazia() imprime() 1.Implementar com vetor 2.Implementar com lista encadeada Operações (1) Pilhas

8 Frederico Brito Fernandes 8 Estrutura, Pesquisa e Ordenação de Dados 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 Definição (2) Filas

9 Frederico Brito Fernandes 9 Estrutura, Pesquisa e Ordenação de Dados 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 Resumindo... (2) Filas

10 Frederico Brito Fernandes 10 Estrutura, Pesquisa e Ordenação de Dados insere(q, A); insere(q, B); insere(q, C); x = retira (q); insere(q, D); insere(q, E) Operações (2) Filas

11 Frederico Brito Fernandes 11 Estrutura, Pesquisa e Ordenação de Dados 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. Cuidado... (2) Filas

12 Frederico Brito Fernandes 12 Estrutura, Pesquisa e Ordenação de Dados 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 Resumindo... (2) Filas

13 Frederico Brito Fernandes 13 Estrutura, Pesquisa e Ordenação de Dados 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 Aplicações (2) Filas

14 Frederico Brito Fernandes 14 Estrutura, Pesquisa e Ordenação de Dados 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 Implementação com vetor (2) Filas

15 Frederico Brito Fernandes 15 Estrutura, Pesquisa e Ordenação de Dados 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 Implementação com vetor (2) Filas

16 Frederico Brito Fernandes 16 Estrutura, Pesquisa e Ordenação de Dados 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 Implementação com vetor (2) Filas

17 Frederico Brito Fernandes 17 Estrutura, Pesquisa e Ordenação de Dados 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; } Implementação com vetor (2) Filas

18 Frederico Brito Fernandes 18 Estrutura, Pesquisa e Ordenação de Dados boolean ehVazia () insere(elemento) elemento retira() imprime() 1.Implementar com vetor 2.Implementar com lista encadeada Operações (2) Filas


Carregar ppt "Prof. Frederico Brito Fernandes Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas."

Apresentações semelhantes


Anúncios Google