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

Slides:



Advertisements
Apresentações semelhantes
Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
Advertisements

Índice Estrutura de Dados Pilhas 2010 Renan Robson Lima Carneiro
O TAD fila O TAD fila armazena objetos arbitrários
Marco Antonio Montebello Júnior
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Programação Avançada I
Algoritmos de manipulação de estruturas elementares de dados
Programação II Estruturas de Dados
Programação II Estruturas de Dados
Estrutura de Dados e Algoritmos e Programação e Computadores II
ESTRUTURAS DO TIPO FILA
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Listas Ligadas – Conceitos Avançados
AED – Algoritmos e Estruturas de Dados
FILAS (Queues) Estrutura linear de acesso seqüencial que ordena seus elementos pela seqüência cronológica de sua entrada; Estrutura FIFO (First In First.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Estrutura de dados Busca
Instrutor: Nilo Menezes
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Prof. Hilton Cardoso Marins Junior
Listas Lineares Estrutura de Dados.
Algoritmos e Estruturas de Dados
Denise Guliato Faculdade de Computação – UFU
Listas lineares Denise Guliato Faculdade de Computação – UFU
Aula 11 LISTAS LIGADAS.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
Lista Encadeada Circular Lista Duplamente Encadeada
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Estruturas de Dados com Jogos
Denise Guliato Faculdade de Computação – UFU
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Estruturas de Dados Aula 9: Listas (parte 1)
Pilhas Profa. Nádia Félix.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Estruturas de Dados Aula 11: TAD Pilha
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Pilhas e Filas usando Alocação Estática e Dinâmica de Memória
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Filas  São utilizadas em aplicações onde são impostos critérios para a inserção e retirada de elementos cuja ordem não depende da ordem natural dos valores.
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
Lista Linear Base para outras estruturas
Professor Ulisses Vasconcelos
AULA 6 PILHA Last In First Out. AULA 6 Conceito de Pilha Conceito de Pilha “Uma pilha é um tipo especial de Lista Linear em que todas as operações de.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
JAVA – Fila ATAI.
Aula Prática 12 Listas Encadeadas Monitoria
Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como.
Estruturas de Dados Murilo Salgado Razoli.
Estrutura de Dados Aula 3 - Listas
Estrutura de dados Pilhas e filas
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
UNIVERSIDADE FEDERAL DO AMAZONAS- UFAM INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA- ICET SISTEMAS DE INFORMAÇÃO ALGORITMOS E ESTRUTURAS DE DADOS II PILHAS.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Transcrição da apresentação:

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

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

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)

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

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

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

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

(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

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

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)

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 .

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

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

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

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

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

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; }

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