Alocação Dinâmica de Memória

Slides:



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

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.
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
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
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
AED – Algoritmos e Estruturas de Dados
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Universidade de Brasília
Slides: Prof. João Fabro UTFPR - Curitiba
Lista Encadeada Circular Lista Duplamente Encadeada
Escola Secundária c/ 3º CEB da Batalha
Listas Encadeadas.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Algoritmos e Estruturas de Dados
Listas Simplesmente Encadeadas
ALGORITMOS E ESTRUTURAS DE DADOS
exercícios listas encadeadas
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Professor Reverton de Paula Faculdade Anhanguera de Indaiatuba
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
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
Estruturas de Dados com Jogos
Alocação Dinâmica de Memória
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.
Linguagem de programação I A 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 5: Matrizes
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.
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
Estruturas de Dados Aula 17: Estruturas Genéricas
ESTRUTURA DE DADOS Aula 10 – Listas Duplamente Encadeadas.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
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.
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.
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.
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Transcrição da apresentação:

Alocação Dinâmica de Memória Estruturas Encadeadas

Motivação O uso de estruturas encadeadas dinamicamente permite criar estruturas de dados versáteis que permitem

Conceitos Estrutura auto-referenciada Um estrutura auto referência possui dentro seus campos, um campo que pode referenciar estruturas idênticas a ela mesma. Portanto, uma estrutura auto referenciada pode apontar para outra estrutura do mesmo tipo que ela

Implementando um estrutura auto-referenciada Exemplo: struct Ponto { int x,y; int cor; struct Ponto *proximoPonto; }; x y proximoPonto cor

Implementando um estrutura auto-referenciada main(){ /*declarando uma lista de struct Ponto */ struct Ponto *lPontos, aux; // lista de pontos lPontos e aux lPontos ? /* alocando um struct Ponto a atribuindo o seu endereço ao inicio da lista */ lPontos = malloc(struct Ponto); x lPontos y proximoPonto ? cor

Implementando um estrutura auto-referenciada /*Atribuindo os valores do Ponto*/ lPontos->x = 3; lPontos->y = 5; lPontos->cor = 245; /* Atribuindo NULL ao proximo ponto */ lPontos->proximoPonto = NULL; x 3 proximoPonto lPontos y 5 NULL cor 245

Adicionando um novo ponto a lista Alternativa 1 – Inserindo no início da lista de pontos aux = lPontos; lPontos = malloc (struct lPontos); lPontos->x = 20; lPontos->y = 30; lPontos->cor = 135; lPontos->proximoPonto = aux; lPontos x 20 x 3 proximoPonto proximoPonto y 30 y 5 NULL cor 135 cor 245

Adicionando um novo ponto a lista Alternativa 2 – Inserindo no início da lista de pontos aux = malloc (struct lPontos); aux->x = 20; aux->y = 30; aux->cor = 135; aux->proximoPonto = NULL; lPontos->proximoPonto = aux; lPontos x 3 x 20 proximoPonto proximoPonto y 5 y 30 NULL cor 245 cor 135

Removendo um ponto Exemplos: remover o primeiro ponto da lista: aux = lPontos->proximoPonto; free(lPontos); lPontos = aux; remover o segundo ponto da lista: free(lPontos->proximoPonto); lPontos->proximoPonto=NULL;

Redefinindo a struct Ponto typedef struct Ponto{ int x,y,cor; } Ponto; typedef struct noLista { Ponto p; struct noLista *prox; }noLista; typedef *noLista Lista;

Generalizando as funções de inserção e remoção int inserePonto(Lista *l, Ponto p); int removePonto(Lista *l, int x, int y);