ALGORITMOS E ESTRUTURAS DE DADOS

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Dados Listas Prof. Rodrigo Rocha
Advertisements

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Estruturas de Dados Árvores Binárias
Listas encadeadas Prof. Rosana Palazon.
Listas duplamente encadeadas
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Listas duplamente encadeadas
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 - Hashing
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
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
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. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Alocação Dinâmica de Memória
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Algoritmos e Estruturas de Dados
Listas Simplesmente Encadeadas
exercícios listas encadeadas
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Pesquisa em memória primária: hashing
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
LISTAS DUPLAMENTE ENCADEADAS
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
INTELIGÊNCIA ARTIFICIAL
Á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.
Listas lineares Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
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 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 17: Estruturas Genéricas
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 9 -2: Listas simplesmente encadeadas sem sentinela e sem cabeçalho 19/06/2013.
Estruturas de Dados Aula 10: Listas (parte 2) 07/05/2014.
Aula Prática 12 Listas Encadeadas Monitoria
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
Lista Ligada Estrutura de Dados II Prof. Gale. Vantagens  Crescem (ou decrescem) à medida que elementos são inseridos (ou removidos)  seqüência encadeada.
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
UNIVERSIDADE FEDERAL DE MINAS GERAIS Listas Lineares Cristiano Arbex Valle Vinicius Fernandes dos Santos
Transcrição da apresentação:

ALGORITMOS E ESTRUTURAS DE DADOS Bruno Silva

Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não estão contíguos na memória info NULL Vetor x Listas: Vetor: tamanho pré-definido, sabe qual o próximo, contíguo na memória Lista: não tem tamanho pré-definido, cada um guarda quem é o próximo, espalhados pela memória Figura Cada elemento armazenado numa lista guarda um ponteiro para o próximo elemento. O último elemento da lista possui um ponteiro inválido, indicando o término da estrutura. Com isto, a partir do primeiro elemento e percorrendo-se os ponteiros, pode-se acessar todos os elementos da lista. Portanto, numa lista encadeada, as informações não estão armazenadas de forma contínua na memória. Cada informação tem seu espaço de memória e é ligada à outra através de um enlace (ponteiro). Cada elemento é uma estrutura: informações + próximo da fila. Filas e pilhas dividem características comuns: Primeiro, ambas têm regras específicas para referenciar elementos às estruturas de dados. Segundo, operações de restauração são por natureza destrutivas, isto é, acessar um elemento em uma pilha ou fila requer sua retirada. info NULL prox info prox info info NULL prox Algoritmos e Estrutura de Dados I

Sobre os Elementos da Lista Elemento: guarda as informações sobre cada elemento. Para isso define-se cada elemento como uma estrutura que possui: campos de informações ponteiro para o próximo elemento info prox Algoritmos e Estrutura de Dados I

Sobre a Lista Uma lista pode ter uma célula cabeça info prox NULL Último Uma lista pode ter um apontador para o último elemento Algoritmos e Estrutura de Dados I

Cria Lista Vazia NULL Cabeça Último Algoritmos e Estrutura de Dados I

Inserção de Elementos na Lista info prox NULL Último 3 opções de posição onde pode inserir: 1ª. posição última posição Após um elemento qualquer E Algoritmos e Estrutura de Dados I

Inserção na Primeira Posição info NULL prox prox info prox info prox info NULL Último Algoritmos e Estrutura de Dados I

Inserção na Última Posição prox info prox info prox info NULL info NULL prox Último Algoritmos e Estrutura de Dados I

Inserção Após o Elemento E info NULL prox prox info prox info prox info NULL Último Elem E Algoritmos e Estrutura de Dados I

Retirada de Elementos na Lista info prox NULL Último 3 opções de posição de onde pode retirar: 1ª. posição última posição Um elemento qualquer E Algoritmos e Estrutura de Dados I

Retirada do Elemento na Primeira Posição da Lista prox info prox info prox info NULL Último Algoritmos e Estrutura de Dados I

Retirada do Elemento E da Lista prox info prox info prox info NULL Anterior Elem E Último Algoritmos e Estrutura de Dados I

Retirada do Último Elemento da Lista prox info prox info prox info NULL NULL Anterior Último Algoritmos e Estrutura de Dados I

Estrutura da Lista Usando Apontadores typedef int TipoChave; typedef struct { int Chave; /* outros componentes */ } TipoItem; typedef struct Celula_str *Apontador; typedef struct Celula_str { TipoItem Item; Apontador Prox; } Celula; Apontador Primeiro; Apontador Ultimo; } TipoLista; Algoritmos e Estrutura de Dados I

Operações sobre Lista Usando Apontadores void IniciaVazia(TipoLista *Lista) { Lista->Primeiro = (Apontador) malloc(sizeof(Celula)); Lista->Ultimo = Lista->Primeiro; Lista->Primeiro->Prox = NULL; } int Vazia(TipoLista Lista) return (Lista.Primeiro == Lista.Ultimo); void Insere(TipoItem x, TipoLista *Lista) Lista->Ultimo->Prox = (Apontador) malloc(sizeof(Celula)); Lista->Ultimo = Lista->Ultimo->Prox; Lista->Ultimo->Item = x; Lista->Ultimo->Prox = NULL; Algoritmos e Estrutura de Dados I

Operações sobre Lista Usando Apontadores void Imprime(TipoLista Lista) { Apontador Aux; Aux = Lista.Primeiro->Prox; while (Aux != NULL) printf("%d\n", Aux->Item.Chave); Aux = Aux->Prox; } Algoritmos e Estrutura de Dados I

Operações sobre Lista Usando Apontadores Vantagens: Permite inserir ou retirar itens do meio da lista a um custo constante (importante quando a lista tem de ser mantida em ordem). Bom para aplicações em que não existe previsão sobre o crescimento da lista (o tamanho máximo da lista não precisa ser definido a priori). Desvantagem: Utilização de memória extra para armazenar os apontadores. Algoritmos e Estrutura de Dados I