Estrutura de Dados (DPADF 0056)

Tamanho: px
Começar a partir da página:

Download "Estrutura de Dados (DPADF 0056)"

Transcrição

1 Estrutura de Dados (DPADF 0056) Aula 9 Listas Heterogêneas Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati

2 Conjunto de dados com número variado de elementos variados

3 Listas Heterogênea Cada nó da lista guarda um tipo diferente de informação; Sua implementação se dá utilizando-se em cada nó, no mínimo três campos: Identificador do tipo de dado armazenado; Ponteiro para a informação; Ponteiro para o próximo elemento da lista; quadrado triângulo círculo

4 Para exemplificar... struct retangulo { float altura; float largura; }; struct triangulo { float altura; float base; }; struct circulo { float raio; }; #define RET 0 #define TRI 1 #define CIR 2 void*?? struct elemento { int tipo; void* info; struct elemento* prox; };

5 void* = ponteiro para qualquer coisa A alternativa que temos para guardar qualquer coisa em um nodo da lista é representar a informação através de um ponteiro genérico (void*); Uma variável do tipo ponteiro genérico pode representar qualquer endereço de memória, independente da informação que está armazenada neste espaço;

6 Antes de continuarmos... um exemplo... int* a; float* b; *((float*) p)??? a = malloc(sizeof(int)); b = malloc(sizeof(float)); void* p; *a = 5; *b = 10.5; p = b; printf("%f",*((float*) p) );

7 Conversão explícita de tipo Para acessar a informação será necessário fazer uma conversão explícita de tipo (casting); Em linguagem C isso é feito colocando antes do ponteiro genérico o tipo original para o qual a conversão deve ser feita (entre parêntesis ); float* a; //Declaração de ponteiro float* b; void* p; //Declaração de ponteiro genérico p = a; //O ponteiro genérico recebe o end. de a b = (float*) p //antes de utilizar faz-se o casting

8 Implementação Como cada nó da lista pode guardar tipos diferentes de informação será necessário que seja implementada uma subrotina para alocar espaço e inicializar cada tipo de elemento... Elemento* cria_retangulo(float a, float l); Elemento* cria_triangulo(float h, float b); Elemento* cria_circulo(float r);

9 Exercícios para fixação

10 Lista de Objetos Geométricos Que tal implementar um TAD Lista para guardar uma lista de figuras geométricas (círculos, triângulos, retângulos, losângulos, etc.) Implemente uma operação no TAD para calcular a área total ocupada por todos os objetos da lista; É possível determinar qual o elemento de maior área? É possível pesquisar ou excluir um elemento?

11 Estrutura de Dados (DPADF 0056) Aula 10 Lista com Descritor Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati

12 Tipo especial de lista que guarda um resumo sobre a própria lista

13 Lista com descritor Uma lista com descritor é um tipo especial de lista onde ao invés de escolher um elemento para ser o primeiro da lista e guardar sua referência será utilizada uma estrutura composta por outros campos com informações sobre a própria lista (de acordo com cada aplicação)... Primeiro elemento ; Último elemento; Número de elementos; Média de valores dos elementos (no caso de valores numéricos); Etc.

14 Descritor Elemento Suponhamos uma lista numérica... Área de Informações Área de Apontadores ou Elos 5 14 Início da Lista 9 NULL Final da Lista 6 Média de Valores Nº de Elementos 18 5

15 Para exemplificar... struct elemento { int conteudo; struct elemento* proximo; }; Dois registros? typedef struct elemento Elemento; struct descritor { Elemento* inicial; Elemento* final; int cont; int media; };

16 Implementação As operações sobre uma lista com descritor são semelhantes às da lista normal, porém, a cada operação o descritor da lista precisará ser atualizado... Descritor* crialista(); Descritor* inserenoinicio(descritor* des, int v); Descritor* inserenofinal(descritor* des, int v); void imprimelista(descritor* des); Elemento* buscavalor(descritor* des, int v); void liberalista(descritor* des); Descritor* retiraelemento(descritor* des, Elemento* e);

17 Vantagens Uma lista com descritor é uma excelente alternativa para determinadas aplicações, onde é necessário por exemplo saber rapidamente o número de elementos ou a soma de seus valores... sem precisar percorrer toda a lista para descobrir essa informação. Dependendo como a lista é implementada, nodos específicos podem ser acessados diretamente (o primeiro, o último, o maior, o menor, etc...)

18 Exercícios para fixação

19 Lista de Inteiros com Descritor Que tal implementar um TAD Lista de inteiros com um descritor para guardar e manter atualizado em cada operação: O número de elementos; A soma dos valores; A média dos valores.

Estrutura de Dados (DPADF 0056)

Estrutura de Dados (DPADF 0056) Estrutura de Dados (DPADF 0056) Aula 11 Listas Ordenadas Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

Estrutura de Dados (DPADF 0056)

Estrutura de Dados (DPADF 0056) Estrutura de Dados (DPADF 0056) Aula 8 Estr. Clássicas - Lista Universidade Federal de anta Maria Colégio Agrícola de Frederico Westphalen Curso uperior de Tecnologia em istemas para Internet Prof. Bruno

Leia mais

Aula 7 Encadeamento de Memória

Aula 7 Encadeamento de Memória Aula 7 Encadeamento de Memória Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Leia mais

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Fontes Bibliográficas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Fontes Bibliográficas. Listas Circulares. Função Imprime

Fontes Bibliográficas. Listas Circulares. Função Imprime Fontes Bibliográficas Estruturas de Dados Aula 12: Outras Implementações de Listas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo

Leia mais

Estrutura de Dados (DPADF 0056)

Estrutura de Dados (DPADF 0056) Estrutura de Dados (DPADF 0056) Aula 2 TADs Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Leia mais

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática

Leia mais

Módulo 10 Listas Encadeadas

Módulo 10 Listas Encadeadas Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Métodos Computacionais. Variações de Listas Encadeadas

Métodos Computacionais. Variações de Listas Encadeadas Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos

Leia mais

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento

Leia mais

Ordenação - Motivação

Ordenação - Motivação Ordenação - Motivação Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Aula 7 Modularização Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Dividir

Leia mais

Estrutura de Dados (DPADF 0056)

Estrutura de Dados (DPADF 0056) Estrutura de Dados (DPADF 0056) Aula 1 Motivação e Revisão Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

Módulo 14 - Estruturas genéricas

Módulo 14 - Estruturas genéricas Estruturas de Dados Módulo 14 - Estruturas genéricas 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011 Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos

Leia mais

Listas Lineares. continuando...

Listas Lineares. continuando... Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso

Leia mais

Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet

Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Aula 17 Quick Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Ordenação

Leia mais

Lista de Exercícios 06 Revisão para a prova

Lista de Exercícios 06 Revisão para a prova Lista de Exercícios 06 Revisão para a prova Instruções: Essa lista não vale pontos, portanto ela é para aprendizado. Quando ficar com dúvidas não procure conteúdo na internet, faça uma revisão nos códigos,

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

MC-102 Aula 21 Registros

MC-102 Aula 21 Registros MC-102 Aula 21 Registros Instituto de Computação Unicamp 27 de Outubro de 2016 Roteiro 1 Registros Declarando um novo tipo de Registro Acessando os campos de um Registro Lendo e Escrevendo Registros Atribuição

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 09: Listas (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes Email:

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Estruturas e Definição de Tipo (struct / typedef) Gil Eduardo de Andrade Introdução Uma estrutura, em C, é uma coleção de variáveis referenciada por apenas um nome; As estruturas

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Introdução a Programação. Listas Encadeadas

Introdução a Programação. Listas Encadeadas Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores

Leia mais

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Frequência Resolução 19/maio/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as seguintes

Leia mais

Métodos Computacionais. Listas Encadeadas

Métodos Computacionais. Listas Encadeadas Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente

Leia mais

Lista com saltos - generalidades

Lista com saltos - generalidades Lista com saltos - generalidades - Foram propostas em 1989 por William Pugh, professor da Universidade de Maryland; - Permitem operações de consulta, inserção e remoção mais eficientes do que as listas

Leia mais

AULA 14 ESTRUTURA DE DADOS

AULA 14 ESTRUTURA DE DADOS AULA 14 ESTRUTURA DE DADOS Matriz esparsa Norton T. Roman & Luciano A. Digiampietri Matriz Uma matriz bidimensional é um conjunto de elementos (ou tabela) composta por m linhas e n colunas. Matriz Uma

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos

Leia mais

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica

Leia mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática

Leia mais

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006) Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Lista 2 Completa 2006.1 (Gerada em 8 de maio de 2006) 1. Considerando a estrutura struct Ponto { int x; int y; para representar um ponto

Leia mais

Tipos Estruturados. Tipos Estruturados

Tipos Estruturados. Tipos Estruturados Tipos Estruturados Até aqui trabalhamos apenas com tipos básicos (disponibilizados pela linguagem), mas para desenvolver programas mais complexos é necessário trabalhar de uma maneira mais abstrata para

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas - continuação Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas - continuação) 1 / 10 Listas encadeadas com indicadores de inicio e fim Anteriormente

Leia mais

Estruturas de Dados Aula 17: Estruturas Genéricas 15/06/2011

Estruturas de Dados Aula 17: Estruturas Genéricas 15/06/2011 Estruturas de Dados Aula 17: Estruturas Genéricas 15/06/2011 1 Fontes Bibliográficas Livro: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 14; Slides baseados no material da PUC-Rio,

Leia mais

Listas Encadeadas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Listas Encadeadas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Listas Encadeadas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados

Leia mais

Listas Duplamente Encadeadas

Listas Duplamente Encadeadas 228 istas Duplamente Encadeadas Como vimos, uma lista circular possui vantagens sobre uma lista linear, contudo esta ainda possui limitações Por exemplo, não podemos percorrê-la no sentido contrário ou

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II Slides cedidos por Karina Mochetti 2018.1 Exercício Aula Passada Faça uma função que recebe uma matriz n m representada por ponteiros e desaloque toda a memória usada por

Leia mais

Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I

Filas. Prof. Túlio Toffolo  BCC202 Aula 12 Algoritmos e Estruturas de Dados I Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:

Leia mais

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

Lista: conceito, representação e algoritmos

Lista: conceito, representação e algoritmos Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados

Leia mais

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?

Leia mais

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Aula 08 Estruturas de Dados Prof: Luciano Barbosa Tipos de Dados Primitivos vs Estruturados Tipos primitivos: reais (float, double), inteiros (int), caractere (char); Tipos estruturados:

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Revisão: Listas Encadeadas Prof. César Melo Todos os créditos reservados ao professor Leandro Galvão Listas Encadeadas Listas encadeadas ou listas ligadas representam

Leia mais

Linguagem C: Listas Encadeadas

Linguagem C: Listas Encadeadas Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

Leia mais

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Listas (Parte 1) Túlio Toffolo  BCC202 Aula 09 Algoritmos e Estruturas de Dados I Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos

Leia mais

Lista: conceito, representação e algoritmos

Lista: conceito, representação e algoritmos Lista: conceito, representação e algoritmos SCC0502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados

Leia mais

char* prefixo (char* str, int n);

char* prefixo (char* str, int n); Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Segunda Lista de Exercícios 2005.1 1. Implemente uma função que receba uma string e um número inteiro n como parâmetros, e retorne uma

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

AULA 12 ESTRUTURA DE DADOS

AULA 12 ESTRUTURA DE DADOS AULA 12 ESTRUTURA DE DADOS Fila (implementação dinâmica) Norton T. Roman & Luciano A. Digiampietri Fila É uma estrutura linear na qual: - As inserções ocorrem no final da fila; - As exclusões ocorrem no

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

Programação de Computadores II. Cap. 5 Alocação Dinâmica

Programação de Computadores II. Cap. 5 Alocação Dinâmica Programação de Computadores II Cap. 5 Alocação Dinâmica Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

LINGUAGEM C: PONTEIROS

LINGUAGEM C: PONTEIROS LINGUAGEM C: PONTEIROS Prof. André Backes DEFINIÇÃO Variável É um espaço reservado de memória usado para guardar um valor que pode ser modificado pelo programa; Ponteiro É um espaço reservado de memória

Leia mais

Matrizes Esparsas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Matrizes Esparsas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas

Leia mais

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos

Leia mais

ou, se quisermos criar uma constante simbólica para a dimensão:

ou, se quisermos criar uma constante simbólica para a dimensão: 7. Matrizes W. Celes e J. L. Rangel Já discutimos em capítulos anteriores a construção de conjuntos unidimensionais através do uso de vetores. A linguagem C também permite a construção de conjuntos bi

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES- Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES- Operações sobre uma árvore Estruturas para armazenar árvores Contígua Contígua melhorada Encadeada

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Passagem de Parâmetros e Estruturas. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Passagem de Parâmetros e Estruturas. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Passagem de Parâmetros e Estruturas Pedro O.S. Vaz de Melo A passagem de parâmetros Toda função define um processamento a ser realizado. Este processamento depende

Leia mais

L I C R P * * V O * * A * A F * * * * *

L I C R P * * V O * * A * A F * * * * * UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Bacharelado em Ciência da Computação e Engenharia da Computação INF 01203 Estruturas de Dados Profa. Renata Galante (galante@inf.ufrgs.br

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa

Leia mais

Módulo 8 Tipos Estruturados

Módulo 8 Tipos Estruturados Estruturas de Dados Módulo 8 Tipos Estruturados 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Ponteiros. prof. Fabrício Olivetti de França

Ponteiros. prof. Fabrício Olivetti de França Ponteiros prof. Fabrício Olivetti de França Anteriormente em prog. estrut. Vimos que as variáveis representando arrays em C armazenam apenas um apontador para o endereço de memória contendo os valores

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Alocação Dinâmica. Túlio Toffolo BCC202 Aula 02 Algoritmos e Estruturas de Dados I

Alocação Dinâmica. Túlio Toffolo  BCC202 Aula 02 Algoritmos e Estruturas de Dados I Alocação Dinâmica Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 02 Algoritmos e Estruturas de Dados I Esquema de Memória baixa Código do Programa Variáveis Globais e Estáticas Memória

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais

Leia mais

Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

INF 1620 P3-25/11/05 Questão 1 Nome:

INF 1620 P3-25/11/05 Questão 1 Nome: INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS

ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com

Leia mais

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira Listas Seqüenciais Estática Seqüencial É implementada usando um vetor Deve-se determinar qual a

Leia mais

Linguagens de Programação. Rotinas, Modos e Tipos de Passagem de Parâmetros. Carlos Bazilio

Linguagens de Programação. Rotinas, Modos e Tipos de Passagem de Parâmetros. Carlos Bazilio Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Passagem de Parâmetros Os parâmetros são um canal de

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for

Leia mais

Lista com descritor (continuação)

Lista com descritor (continuação) Lista com descritor (continuação) Rotina para remover o eiro elemento de uma LLSECD: char removeiniciollsecd(tdescritor *l, TInfo val) { p = l->; l->=p->prox; if (l->==1) Rotina para remover o último nó

Leia mais

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense - Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais

Leia mais

Listas e matrizes esparsas. SCC122 Estruturas de Dados

Listas e matrizes esparsas. SCC122 Estruturas de Dados Listas e matrizes esparsas SCC Estruturas de Dados Matriz: definição Matriz é um arranjo (tabela) retangular de números dispostos em linhas e colunas 8 9 6 4 7 3 3x3 B 8 9 4 3 5 3 4 3x4 A nº de elementos

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

Reinaldo Gomes Alocação Dinâmica

Reinaldo Gomes Alocação Dinâmica Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Alocação Dinâmica em C Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm 1 O que fazer com essa apresentação 2 Introdução A alocação dinâmica de memória é uma característica

Leia mais

Matrizes Esparsas. atribuição (M, i, j, v) (i, j) IND. v nulo. v não nulo v nulo v não nulo. há espaço. não há espaço. retira substitui nada

Matrizes Esparsas. atribuição (M, i, j, v) (i, j) IND. v nulo. v não nulo v nulo v não nulo. há espaço. não há espaço. retira substitui nada Matrizes Esparsas atribuição (M, i, j, v) (i, j) IND (i, j) IND v nulo v não nulo v nulo v não nulo retira substitui nada há espaço não há espaço insere erro! estouro da representação 83 Matrizes Esparsas

Leia mais

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Dinâmica de Memória David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Trabalho Linguagem e Programação de Compiladores

Trabalho Linguagem e Programação de Compiladores Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:

Leia mais