Filas. #define MAXFILA 100 typedef struct queue { int item [ MAXFILA]; int inic, fim; } fila; fila q;

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

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Marco Antonio Montebello Júnior
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Fila by Aquiles Burlamaqui
Estruturas de Dados Árvores Binárias
Listas encadeadas Prof. Rosana Palazon.
Listas duplamente encadeadas
Programação II Estruturas de Dados
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
Filas David Menotti Estruturas de Dados I DECOM – UFOP.
David Menotti Estruturas de Dados I DECOM – UFOP
Pilha David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Aula T12 – BCC202 Listas Túlio Toffolo
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
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.
Listas com Ponteiros Listas encadeadas Listas circulares.
Slides: Prof. João Fabro UTFPR - Curitiba
Slides: Prof. João Fabro UTFPR - Curitiba
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Listas Simplesmente Encadeadas
ALGORITMOS E ESTRUTURAS DE DADOS
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Introdução a Estruturas de Dados Avançadas Utilizando Linguagem C
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Algoritmos e Estruturas de Dados
Pesquisa em Memória Primária
PROGRAMAÇÃO ESTRUTURADA II
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
Filas - Definição Uma fila possui o comportamento: O primeiro que chega é o primeiro que sai. O único elemento que pode ser removido da fila é o primeiro.
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Árvores Binárias de Pesquisa
TAD Pilha com Alocação Dinâmica de Memória
Implementação de FILAS com Alocação Dinâmica
Lista Encadeada Circular Lista Duplamente Encadeada
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
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
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Estruturas de Dados Aula 9: Listas (parte 1)
Lista encadeada Representar um grupo de dados.
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
Árvore Binária de Busca
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
Estruturas de Dados Aula 15: Árvores
Prof. Alessandro Gonçalves
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.
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.
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.
Função de buscar elemento na lista simplesmente encadeada
Transcrição da apresentação:

Filas

#define MAXFILA 100 typedef struct queue { int item [ MAXFILA]; int inic, fim; } fila; fila q;

Operações sobre uma fila.

q.item (a) q.inic = 0 q.fim = -1

No momento (a) a fila está vazia q.inic=o e q.fim = -1 Quantidade de elementos = q.fim –q.inic+1 Ou seja: =0

q.item q.fim = 2 q.inic = 0 (b)

No momento (b) No momento (b) houve a inclusão de 3 elementos - 10, 20 e 30 Quantidade de elementos = q.fim –q.inic+1 Ou seja: 2 – = 3

30 q.item q.inic = q.fim =2 (c)

No momento (c) houve a remoção dos elementos 10 e 20 q.fim = q.inic 30 é o primeiro e o último elemento Quantidade de elementos = q.fim –q.inic+1 Ou seja: 2 – = 1

q.item (d) q.fim = 4 q.inic =

No momento (d) existem =3 Não é possível inserir outros elementos, pois o elemento 50 ocupa a última posição do vetor Existem 2 posições livres Para deslocar os elementos no vetor exige grande esforço computacional X=q.item[0]; For (k=0;k< q.fim; k++) q.item[k]=q.item[k+1]; q.Fim --;

Fila circular

q.item (a) q.fim = 4 q.inic = 2

q.item (b) q.inic = 2 q.fim =

50 60 q.item (c) q.inic = 4 q.fim =

q.item (d) q.inic = 4 q.fim =

70 60 q.item (e) q.inic = 0 q.fim =

Como verificar se a fila está vazia q.inic é o índice do vetor que é exatamente anterior ao primeiro elemento da fila q.fim é o índice do último elemento da fila Se q.inic=q.fim, temos uma fila vazia

Ilustração da operação da inserção na fila

q.item (a) q.inic = 1 q.fim = 4

q.item (b) q.inic = 1 q.fim =

q.item (c) q.inic = q.fim =

#define MAXFILA 100 typedef struct queue { int item [ MAXFILA]; int inic, fim; } fila ; Main () fila q;

void inicFila (fila *pq) { pq→inic = MAXFILA -1; pq → fim = MAX FILA -1; }

int filaVazia (fila *pq) { if(pq →inic==pq →fim) return (1) ; /*1 é verdadeiro* / else return (0) ; / *0 é falso*/ ) /* fim filaVazia*/

if (filaVazia (&q)==1) /* tratamento adequado quando a fila está vazia */ else /* tratamento adequado quando a fila não está vazia */

int remFila(fila*pq) { if(filaVazia (pq) ){ printf(“Underflow na fila!\n”); exit ( 1) ; } If (pq → inic = = MAXFILA -1 ) pq → inic = 0; else ( pq →inic) ++; return (pq → item [ pq → inic] ) ; } /*fim remove */

void insFila ( fila *pq, int x) { /*realiza a movimentação para abrir espaço para novo elemento */ if (pq → fim = = MAXFILA – 1) pq → fim = 0 ; else (pq → fim ) ++ ; /*verifica ocorrência de estouro */ if (pq → fim = = pq → inic) { printf (“Ocorreu overflow na fila!\n”); exit ( 1 ) ; } pq → item [ pq → fim] = x; }