Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita

Slides:



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

O TAD fila O TAD fila armazena objetos arbitrários
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.
Algoritmos de manipulação de estruturas elementares de dados
Programação II Estruturas de Dados
TAD Deque ATAI.
Estrutura de Dados e Algoritmos e Programação e Computadores II
INE 5384 Estruturas de Dados Prof a. Patrícia Vilain
Filas David Menotti Estruturas de Dados I DECOM – UFOP.
David Menotti 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
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Estruturas de Dados e Algoritmos
Listas Ligadas – Conceitos Avançados
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.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Capítulo 3 - Russell e Norvig
Listas com Ponteiros Listas encadeadas Listas circulares.
Estrutura de dados Busca
LISTAS “LINKADAS” No Mapeamento Seqüencial tem-se o problema de
Robson Godoi / Sandra Siebra
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Introdução a Estruturas de Dados Avançadas Utilizando Linguagem C
Listas Lineares Estrutura de Dados.
Pesquisa em Memória Primária
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
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.
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
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.
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
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;
Listas Simplesmente Encadeadas
Tipos Especiais de Listas
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
Exercícios de Pilha e Fila
Lista Linear Base para outras estruturas
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
JAVA – Fila ATAI.
1 TAD Fila com Prioridade -FCP ATAI. 2 TAD Fila com Prioridade (Priority Queue) TAD Fila com Prioridade armazena uma colecção de elementos com prioridade.
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.
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.
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Introdução - Pilhas usando Vetores - Filas usando Vetores.
Transcrição da apresentação:

Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita Entrada restrita Saída restrita

Fila versus Pilha SAÍDA SAÍDA ENTRADA FIM Elemento 3 TOPO Elemento 2 BASE INÍCIO ENTRADA

Filas Operações primitivas que manipulam as filas: InicializaFila ou Construtor faz a fila q ficar vazia FilaVazia ou Empty retorna Verdadeiro se a fila q está vazia FilaCheia ou Full retorna Verdadeiro se a fila q está cheia InsereFila(x) ou Insert(x) insere o elemento x no final da fila RemoveFila ou Remove remove o PRIMEIRO elemento da fila, retornando o conteúdo do elemento como valor da função

Filas REPRESENTANDO FILAS EM O.O. Pode utilizar um vetor Apoio de duas variáveis: front e rear Front: primeiro elemento da fila Rear: último elementos da fila class Queue { private object [] elements = new object[1000]; private int front, rear; ... }

Filas Ignorando, momentaneamente, a possibilidade de overflow e underflow: Operação Insert (x): elements [++ rear] = x; Operação Remove (q): x= elements [front ++]; No momento que a fila é criada, rear é definido como –1 e front como 0 A fila está vazia sempre que rear < front Número de elementos na fila é sempre igual ao valor de rear – front + 1

Filas Problema clássico da fila vazia sem possibilidade de inserir novos elementos: itens 4 E rear =4 3 D 2 C rear=2 front= front =2 1 B front = 0 rear = -1 A front=0

Filas Solução 1: remanejar todos os elementos quando remover um elemento public int Remove () { x = elements [ 0 ]; for (int i = 0; i < rear; i++) elements[ i ] = elements[ i + 1 ]; rear - -; O campo front não é necessário porque o elemento na posição 0 do vetor está sempre no início da fila. A fila vazia é representada por rear igual a –1 Podemos verificar que pode existir um grande esforço computacional para a movimentação de 500, 1000, 10.000, 1.000.000 elementos Esta solução sugerida parece ser bastante ineficiente

Filas Circulares Solução mais elegante para resolver problema das filas A idéia é armazenar os elementos na fila como um círculo. Primeiro elemento do vetor vem logo depois do último. Se o último elemento estiver ocupado, um novo valor pode ser inserido no primeiro elemento do vetor Elemento novo não será incluído numa fila circular somente se não houver de fato espaço na mesma.

Filas Circulares elements 4 E rear=4 front=4 3 D 2 C front=2 1 rear=0 G rear=1 rear= 1 F rear =0 front=0 No momento (d), rear < front (1 < 4), é verdadeira – fila vazia? Solução: utilizar um contador com o número de elementos.

Filas Circulares Implementação dessa solução – atributos da classe: class Queue { private object [] elements; private int front, rear, size, count; // Métodos ... }

Filas Circulares Implementação dessa solução – construtor: public Queue (int Size) { size = Size; elements = new object[size]; front = 0; rear = front; count = 0; }

Filas Circulares Implementação dessa solução – retirar elementos: public object Remove () { if (Empty ()) { throw new Exception(“Fila vazia!”); } if (front == size – 1) front = 0; else front++; count --; return (elements[front]); }

Filas Circulares Implementação dessa solução – inserir elementos: public void Insert (object x) { if (Full()) throw new Exception (“Pilha Cheia!”); } if (rear == size – 1) rear = 0; else rear ++; elements[rear] = x; count ++;