Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

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,
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Estruturas de Dados Árvores Binárias
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de manipulação de estruturas elementares de dados
Listas duplamente encadeadas
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
TADS – Tipos Abstratos de Dados
ESTRUTURAS DO TIPO FILA
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
Filas David Menotti Estruturas de Dados I DECOM – UFOP.
Pesquisa em Memória Primária – Árvores de Busca
Aula T11 – BCC202 Pilhas Túlio Toffolo
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
Pesquisa em Memória Primária – Árvores de Busca
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
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.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Slides: Prof. João Fabro UTFPR - Curitiba
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
ALGORITMOS E ESTRUTURAS DE DADOS
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Algoritmos e Estruturas de Dados
Pesquisa em Memória Primária
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
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.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Listas lineares Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
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.
Filas. #define MAXFILA 100 typedef struct queue { int item [ MAXFILA]; int inic, fim; } fila; fila q;
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 10: Listas (parte 2) 07/05/2014.
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
11 Pilhas, Filas e Listas Duplamente Encadeadas Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
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
UNIVERSIDADE FEDERAL DE MINAS GERAIS Pilhas e Filas Cristiano Arbex Valle Vinicius Fernandes dos Santos
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:

Profa. Juliana Mafra (jmafra.pe@gmail.com) Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS Profa. Juliana Mafra (jmafra.pe@gmail.com) 03 de Outubro de 2009

Tipos Especiais de Listas Filas ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Filas É uma lista linear em que todas as inserções são realizadas em um extremo da lista (fim), e todas as retiradas são realizados no outro extremo da lista (início). São chamadas listas fifo (“first-in”, “first-out”). Existe uma ordem linear para filas que é a “ordem de chegada”. São utilizadas quando desejamos processar itens de acordo com a ordem “primeiro-que-chega, primeiro-atendido”. O modelo intuitivo de uma fila é o de uma fila de espera em que as pessoas no início da filas são servidas primeiro e as pessoas que chegam entram no fim da fila. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

TAD Filas: Operações Criar uma fila vazia Testar se um fila está vazia Obter o elemento do início de uma fila Inserir um elemento no fim de uma fila Remover o elemento do início de uma fila, retornando o elemento removido. ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Implementação de Filas: Arranjos Os itens são armazenados em posições contíguas de memória. A operação Inserir faz a parte de trás da fila expandir-se. A operação Remover faz a parte da frente da fila contrair-se. #define MAX 10 typedef int telem; typedef struct{ telem v[MAX]; int inicio; int final; } tfila; ... a0 a1 a2 1 2 MAX -1 início final ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Arranjos Criar uma fila vazia Obter o elemento do início da fila void criar (tfila *f){ f->inicio = 0; f->final = -1; } int primeiro (tfila f, telem *dado) { if (vazia(f)) return 0; *dado = f.v[f.inicio]; return (1); } ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Arranjos Inserir um elemento no fim de uma fila ... a0 a1 a2 1 2 MAX -1 a3 3 inicio final int inserir (tfila *f, telem valor) { if (f->final == MAX-1) return 0; (f->final)++; f->v[f->final] = valor; return(1); } ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Arranjos Remover o elemento do início de uma fila ... a1 a2 1 2 MAX -1 a0 a3 3 inicio final int remover (tfila *f, telem *dado){ if (vazia(*f)) return 0; *dado = f.v[F.inicio]; (f->inicio)++; return(1); } ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Implementação de Filas: Arranjos Problema: A fila tende a caminhar pela memória do computador, ocupando espaço na parte de trás e descartando espaço na parte da frente (overflow). Solução: Imaginar o arranjo como um círculo (a primeira posição segue a última). ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Implementação de Filas: Apontadores A fila é implementada por meio de nós. Cada nó contém um item da fila e um apontador para outro nó. typedef int telem; typedef struct no { telem dado; struct no* prox; } tno; typedef struct fila { tno* inicio; tno* final; } tfila; 5 8 1 Indicador do fim da fila (referência null) dado|prox inicio final ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Apontadores Criar uma fila vazia Obter o elemento do início de uma fila void criar (tfila *f) { f->inicio = f->final = NULL; } int primeiro (tfila f, telem * valor) { if (vazia(f)) return 0; *valor = (f.inicio)->dado; return 1; } ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Apontadores Inserir um elemento no fim de uma fila 5 8 1 9 novo nó int inserir (tfila *f, telem valor) { tno *novo; novo = (tno*) malloc(sizeof(tno)); novo->dado = valor; novo->prox = NULL; (f->final)->prox = novo; f->final = novo; return 1; } inicio final ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados

Operações sobre Filas: Apontadores Remover um elemento do início de uma fila 1 2 9 atual int remover (tfila *f, telem *valor){ tno *atual; if (vazia(*f)) return 0; *valor = (f.inicio)->dado; atual = f->inicio; f->inicio = (f->inicio)->prox; free(atual); return 1; } inicio final ESTRUTURA DE DADOS Profa. Juliana Mafra Estrutura de Dados