Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Estruturas de Dados Listas Prof. Rodrigo Rocha
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
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
Alocação Dinâmida de Memória
Algoritmos e Estrutura de Dados I
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.
Alocação Dinâmica de Memória
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Universidade de Brasília
Ponteiros em Linguagem C
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Ponteiros.
Lista Encadeada Circular Lista Duplamente Encadeada
Escola Secundária c/ 3º CEB da Batalha
Listas Encadeadas.
Alocação Dinâmica de Memória
Algoritmos e Estruturas de Dados
Listas Simplesmente Encadeadas
ALGORITMOS E ESTRUTURAS DE DADOS
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Professor Reverton de Paula Faculdade Anhanguera de Indaiatuba
Alocação Dinâmica de Memória Professor Mário Dantas
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Linguagem de Programação II Parte IX
Denise Guliato Faculdade de Computação – UFU
Definição de Tipos Estruturas e Ponteiros
Estruturas de Dados com Jogos
INTELIGÊNCIA ARTIFICIAL
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 Unidade 6 Simulação do exercício 6.1 Elaborada por Mauricio Falvo.
Prof. Ricardo Santos PONTEIROS
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Estruturas de Dados Aula 5: Matrizes
Estruturas de Dados Aula 9: Listas (parte 1)
Algoritmos e Estruturas de Dados I – Ponteiros
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.
Listas Simplesmente Encadeadas
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
1 Alocação Dinâmica Quando se declara arrays o tamanho deve ser fixo e definido primeiramente –Alocação estática Pode-se alocar dinamicamente o espaço.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Prof. Alessandro Gonçalves
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Ponteiros em C Prof. Kariston Pereira
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Estrutura de Dados Aula 3 - Listas
Linguagem de Programação
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Lista Ligada Estrutura de Dados II Prof. Gale. Vantagens  Crescem (ou decrescem) à medida que elementos são inseridos (ou removidos)  seqüência encadeada.
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.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Transcrição da apresentação:

Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados Ponteiros Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados

Ponteiros Um ponteiro é uma variável que contém um endereço de memória. Esse endereço de memória é normalmente a posição de uma outra variável na memória. Se uma variável contém o endereço de memória de uma outra, então a primeira variável é dita apontar para a segunda.

Exemplo de ponteiro Endereço na memória Variável na memória 1000 1001 1002 1003 1004 1001 1005

Declaração de ponteiro Para utilizar uma variável ponteiro, ela deve ser declarada da seguinte maneira: tipo *nome_ponteiro; Exemplo: int *p;

Operadores de ponteiros Existem 2 operadores unários: * - obtém o conteúdo do endereço apontado & - obtém o endereço de memória do operando.

Exemplo char *pont; int t; char texto[] = "marieta das graças"; pont = &texto[0]; for(t=strlen(pont)-1; t>=0; t--){ printf("%c", pont[t]); }

Lista Dinâmica Encadeada

Listas dinâmicas x estáticas Embora os algoritmos de manipulação de listas com alocação estática sejam relativamente simples, seu uso prático é limitado, principalmente se for considerado a otimização de uso da memória. Duas situações são bastante comuns: tamanho da lista é superdimensionado, havendo neste caso um possível desperdício de memória; a lista é dimensionada com o tamanho inferior ao necessário – nesta situação ou tempo de processamento adicional deve ser inserido para criar uma nova lista, maior que a original, e copiar os dados de uma lista para outra. A solução é utilizar listas alocadas dinamicamente.

Lista Dinâmica Encadeada Uma lista encadeada é constituída de nós ou nodos. Cada nó contém, no mínimo, dois campos: uma refere-se ao dado armazenado na lista naquela posição, a outra refere-se a um ponteiro a outro nó na mesma lista. O dado é a própria informação da aplicação, o ponteiro (ou ponteiros) permite o encadeamento da lista. Denomina-se o primeiro nó da lista de cabeça e o último de último.

Lista Dinâmica Encadeada Em listas dinâmicas, cada novo dado inserido na lista é encapsulado em um nó, e este nó é alocado dinamicamente, ou seja, conforme necessidade do programa em execução e inserido na lista. A utilização de lista dinâmica consome um tempo maior de processamento, pois requer alocação e liberação dinâmica de memória, no entanto, na prática, o ganho e a versatilidade frente a estratégias estáticas é muito maior. NULL

Lista Dinâmica Encadeada Uma lista encadeada é uma sucessão de nós onde cada nó aponta para o próximo nó da lista. O nó que possuir o valor NULL no ponteiro para próximo é o último nó da lista. É de extrema importância que seja mantida uma referência para o primeiro nó da lista, caso esta referência for NULL, significa que a lista esta vazia. Em certas situações também é útil possuir uma referência ao último nó.

Exemplo de estrutura de nó struct Registro { int codigo; char nome[50]; Registro *proximo; };

Alocação dinâmica Malloc() – aloca memória Free() – libera memória registro *no; no = (registro*) malloc(sizeof(registro));

Atividade: Operações sobre Listas Encadeadas Dinâmicas Criar lista vazia Inserir no início de uma lista Inserir no fim de uma lista Exibir se a lista está vazia Exibir os dados do primeiro elemento Exibir os dados do último elemento Exibir todos os valores da lista Exibir o tamanho da lista Eliminar o primeiro elemento Eliminar o último elemento Eliminar o nó que possua o código digitado pelo usuário