Matrizes esparsas: definição
|
|
|
- Yasmin Margarida Marreiro Deluca
- 9 Há anos
- Visualizações:
Transcrição
1 Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e o número total de elementos da matriz grau de esparsidade é a porcentagem de elementos nulos da matriz são matrizes em que nem todos os elementos estão realmente presentes ou são necessários, portanto, a maioria das posições são preenchidas por zeros pode-se economizar um espaço significativo de memória se apenas os termos diferentes de zero forem armazenados e manuseados a eficiência computacional será maior Matrizes esparsas: definição matrizes são consideradas esparsas quando suas dimensões são relativamente grandes (1000 x 1000) nem todas as suas posições são usadas (o número de valores não nulos é da ordem do número de linhas ou do número de colunas, de 1 milhão usa-se 1000 elementos) casos unidimensionais (vetores), bidimensionais e tridimensionais aplicações: em problemas de engenharia, física etc. (método das malhas para resolução de circuitos elétricos) em computação: armazenamento de dados (planilhas eletrônicas, apenas uma porção da matriz pode estar sendo usada em um dado momento) as operações usuais sobre estas matrizes (somar, multiplicar, inverter, pivotar) também podem ser feitas em tempo muito menor se não são armazenadas as posições que contém zeros 1
2 em vez de representar todos os valores, armazena-se os elementos e os números de linha e coluna desses elementos com valor não nulo exemplo de uma matriz esparsa de 5 x 5 elementos inteiros armazena-se 15 inteiros (linha, coluna, elemento), em vez de 25 inteiros { (2,2,1), (2,4,2), (3,3,3), (4,2,4), (4,4,5) } é necessário usar uma representação que evite o armazenamento de tantas posições nulas existem quatro técnicas para representar uma matriz esparsa: lista encadeada árvore binária matriz de ponteiros fragmentação ou hashing estas técnicas são realmente úteis para matrizes com uma porcentagem significativa de elementos nulos (zeros); se este não for o caso, o melhor é usar o método de armazenamento comum (array) 2
3 matriz esparsa com lista encadeada estrutura que contenha os seguintes itens os elementos a serem armazenados a posição dentro da matriz as ligações com o elemento anterior e próximo vantagem faz uso eficiente da memória desvantagem precisa usar uma pesquisa linear para acessar as células da lista (requer n/2 comparações, n é o número de elementos da lista) sem uso de informação adicional (memória adicional) não há como realizar uma pesquisa binária para localizar uma célula matriz esparsa com lista encadeada cada coluna e cada linha da matriz será representada por uma lista linear circular com uma célula cabeça cada célula da estrutura, além das células-cabeça, representará os termos diferentes de zero da matriz e devem ter o seguinte tipo: tipo APONTADOR = ^ TIPOCELULA; TIPOCELULA = registro DIREITA, ABAIXO: APONTADOR; LINHA, COLUNA: inteiro; VALOR: real; fim_registro; cada estrutura é colocada na lista com os elementos inseridos de forma ordenada, baseada no índice da matriz, ou seja, o elemento A 1,2 precede o elemento A 1,3. 3
4 matriz esparsa com lista encadeada o campo ABAIXO deve ser usado para apontar o próximo elemento diferente de zero na mesma coluna o campo DIREITA deve ser usado para apontar o próximo elemento diferente de zero na mesma linha dada uma matriz A, para um valor A(i,j) diferente de zero, deverá haver uma célula com o campo VALOR contendo o elemento de A(i,j) o campo LINHA contendo i e o campo COLUNA contendo j esta célula deverá pertencer à lista circular da linha i e também deverá pertencer à lista circular da coluna j. cada célula pertencerá a duas listas ao mesmo tempo para diferenciar as células cabeça, -1 é colocado nos campos LINHA e COLUNA destas células matriz esparsa com lista encadeada uma matriz esparsa com m linhas, n colunas e r elementos diferentes de zero gastará (m + n + r) + 1 células considere a matriz esparsa A (4 x 4): a matriz A pode ser vista através de um representação de 15 células = (4 linhas + 4 colunas + 6 elementos) + 1 cada célula ocupa vários bytes na memória; no entanto, o total de memória usado será menor do que as posições necessárias para representar a matriz toda, desde que r seja suficientemente pequeno 4
5 matriz esparsa com lista encadeada: matriz esparsa com árvore binária lista duplamente encadeada vantagens pode ser varrida rapidamente: inserções e consultas rápidas (requer log 2 n comparações) usa eficientemente a memória cada célula da estrutura, representará os termos diferentes de zero da matriz e devem ter o seguinte tipo: tipo APONTADOR = ^TIPOCELULA; TIPOCELULA = registro ESQUERDA, DIREITA: APONTADOR; // ponteiros para as subárvores esquerda e direita LINHA, COLUNA: inteiro; VALOR: real; fim_registro; 5
6 matriz esparsa com matriz de ponteiros exige muito menos armazenamento permanente que uma matriz inteira porque ela armazena ponteiros para a informação o método de matriz de ponteiros fornece um acesso muito mais rápido aos elementos da matriz que os métodos da lista encadeada ou árvore binária quando se atribui dados a uma localização de matriz uma memória é alocada para esses dados o ponteiro apropriado na matriz de ponteiro seria definido para apontar para esses dados a declaração que cria esta matriz de ponteiros é: TIPOCELULA = registro LINHA, COLUNA: inteiro; VALOR: real; fim_registro; tipo ^MATRIZ_PONT[xxx]: TIPOCELULA; // matriz de ponteiros de xxx (mxn) elementos matriz esparsa com matriz de ponteiros antes que uma matriz de ponteiros possa ser usada, cada elemento deve ser inicializado com nulo, isto indica que não há entrada nesta posição a figura abaixo mostra um exemplo de uma matriz de ponteiros como suporte para uma matriz esparsa (4x3), onde existem elementos não nulos em A 11, A 12, A 22, A info para A 1,2 info para A 2,2 info para A 3,3 info para A 1,1 cada posição com elemento da matriz esparsa é mapeada em uma e apenas uma posição da matriz de ponteiros para atribuir o endereço de TIPOCELULA ao primeiro elemento da matriz de ponteiros, escrevese: MATRIZ_PONT[1] &TIPOCELULA para encontrar as informações de TIPOCELULA de A 11, escreve-se ^MATRIZ_PONT[1] 6
7 matriz esparsa com fragmentação (hashing) a técnica de hashing tem sido aplicada a arquivos em disco como forma de minimizar o tempo de acesso a técnica de fragmentação é o processo de extrair o índice de um elemento da matriz diretamente da informação que deve ser armazenada o índice gerado é chamado de hash e é obtido através de operações com a posição (l,c) do elemento na matriz esparsa, que é convertido em um número para acessar a matriz hashing se houver coincidência de índices (colisões de hash), uma lista encadeada (lista de colisões) é usada para conter as entradas e esta lista tem comprimento zero até que ocorra uma colisão matriz esparsa com fragmentação (hashing) a declaração que cria a matriz hashing é: define MAX xxx; // quantidade possível de elementos não nulos da matriz tipo APONTADOR = ^TIPOCELULA; TIPOCELULA = registro INDICE: inteiro; VALOR: real; PROXIMO: APONTADOR; // ponteiro para o próximo valor com mesmo fragmento fim_registro; tipo MATRIZ_HASH[MAX]: TIPOCELULA; // matriz hashing de max elementos 7
8 matriz esparsa com fragmentação (hashing) exemplo de matriz hashing para representar 100 elementos não nulos Índice Valor Ponteiro para a lista de colisão ,1 5,1 1,2.. 2,1 20,1 3,1 3 7,2 : : : : o fator mais crítico no uso de hashing é assegurar que o algoritmo distribua os índices uniformemente de forma a evitar longas listas de colisão lista encadeada x árvore binária x matriz de ponteiros x hashing fatores a considerar para escolha de uma abordagem velocidade e eficiência no uso da memória portanto, para qualquer aplicação, deve ser feita uma avaliação de tempo e espaço quando a matriz é muito esparsa, as abordagens que utilizam mais eficientemente a memória são 1. listas encadeadas e árvores binárias: apenas os elementos da matriz que estão realmente sendo usados têm memória alocada para eles 2. o método de hashing está situado entre as abordagens de matriz de ponteiros e árvore binária/lista encadeada 3. a matriz de ponteiros requer que toda a matriz de ponteiros exista, mesmo que alguns de seus elementos não sejam usados. Utiliza memória para toda posição estejam os ponteiros sendo utilizados ou não 8
9 lista encadeada x árvore binária x matriz de ponteiros x hashing quando a matriz está razoavelmente cheia, ou seja, o grau de esparsidade é pequeno a matriz de ponteiros faz o melhor uso da memória árvore binária/lista encadeada usam dois ponteiros para cada elemento exemplo de uma matriz de ponteiros de 1000 elementos: 2000 bytes lista ou árvore: 4000 bytes em termos de velocidade de execução a abordagem mais rápida é a matriz de ponteiros mas se o uso da memória é crítico: usa-se lista encadeada ou árvore binária Matrizes esparsas: operações além de armazenar matrizes esparsas, as aplicações normalmente exigem a realização de operações sobre essas matrizes, como por exemplo: multiplicar uma dada linha ou coluna por uma constante somar uma constante a todos os elementos de uma linha ou coluna somar duas matrizes esparsas de igual dimensão multiplicar uma dada linha ou coluna por uma constante inverter ou transpor matrizes esparsas como conseqüência desses operações, alguns elementos podem deixar de ser nulos, enquanto que outros podem se tornar nulos quando um elemento da matriz se tornar não nulo, há inserção na estrutura quando um elemento da matriz se torna nulo, há eliminação na estrutura 9
10 Matrizes esparsas: operações considerando os possíveis tipos de representação (lista, árvore, matriz de ponteiros ou hashing), o trabalho consiste em desenvolver procedimentos para operar as matrizes esparsas nas diversas estruturas de representação apresentadas: inserção, soma, localização, multiplicação, eliminação, impressão a entrada para estes procedimentos consiste dos valores de m e n (número de linhas e colunas da matriz) seguidos de triplas (i, j, valor) para os elementos diferentes de zero da matriz para a matriz do exemplo, a entrada seria: Matrizes esparsas Exercício 1) Utilize lista encadeada para representar a matriz esparsa B seguinte (faça o mapa de representação utilizando células): 0 B = Exercício 2) Deseja-se implementar uma matriz (1000x1000) com grau de esparsidade de 99.9% e a velocidade não é um fator importante a considerar, mas a eficiência do uso de memória tem que ser levada em conta. Qual deve ser a melhor estrutura a ser utilizada para sua representação? Justifique sua resposta do ponto de vista da quantidade de bytes utilizados para representála. 10
11 Matrizes esparsas Exercício 3) Crie um programa para implementar uma matriz esparsa, utilizando-se da técnica de listas encadeadas, que contenha as seguintes funções: cabeçalho: cria a estrutura da matriz esparsa; inclusão: insere um novo elemento em uma posição determinada da matriz; procura: procura o valor de uma determinada posição na matriz; impressão: mostra a matriz na tela; liberação: libera todas as posições alocadas pela matriz, incluindo a estrutura; eliminação: elimina um elemento (A ij ) da matriz; soma: soma todos os elementos da coluna j com a constante k; soma_matriz: soma duas matrizes esparsas multiplica: multiplica duas matrizes esparsas observe que estas operações podem resultar em inserções e/ou eliminações. Exercício 4) Sugira uma representação para matrizes tridimensionais esparsas. Matrizes esparsas Exercício 5) Crie um programa para tratar uma matriz esparsa (25x80), cujos elementos são referenciados por uma matriz de ponteiros, declarada como CEL ^FOLHA[DIM], onde DIM é uma constante definida com o valor 2000 e CEL é o tipo de estrutura dos elementos da matriz, definido como: typedef struct { int LIN,COL; // endereço da célula char CONTEUDO[128]; // conteúdo da celula }CEL; As variáveis LIN e COL armazenam o número da linha e o número da coluna, respectivamente e a variável CONTEUDO[128] armazena o conteúdo da célula. O programa deve conter procedimentos para incluir as células da matriz, para listar as células preenchidas, para mostrar o conteúdo dessas células (dadas linha e coluna) e para eliminar um elemento da matriz já preenchido. 11
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 [email protected] Instituto
Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 21/10/2010
Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 1/1/1 Matriz: definição Matriz é um arranjo (tabela) retangular de números dispostos em linhas e colunas 8 9 6 1 4 7 3 3x3 B
Estruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Aplicações de listas e outras estruturas
plicações de listas e outras estruturas Baseado no material de Thiago. S. Pardo lgoritmos e Estruturas de Dados I Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados
Universidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I
Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números
Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
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
Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:
Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,
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
Lista de Exercícios 04
Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Lista de Exercícios sobre Listas Implementadas por Encadeamento
Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um
Algoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Aula 09 Revisão + Simulado Prof. Jesús P. Mena-Chalco [email protected] 1Q-2019 1 Vetores 2 Vetores 3 Vetores vetor 4 Vetores... vetor... 5 Ponteiros 6 Processo
Hashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
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
Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 055/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Matrizes (Vetores Bidimensionais)
(Vetores Bidimensionais) Objetivos Conceituação de Vetores Bidimensionais Manipulação de Vetores Bidimensionais Entender a diferença entre uso dos diferentes vetores Entender como manipular entrada, saída
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Estrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan [email protected] Conteúdos Abordados O Conceito de Listas Listas com Representação
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados
TÉCNICAS DE PROGRAMAÇÃO Estrutura de dados O que são estrutura de dados? É a forma como os armazenamos tipos de dados, vistos dia a dia, ou seja, nada mais são do que a transformação de uma forma de armazenamento
INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras
INF 1620 Estruturas de Dados Semestre 08.2 Segundo Trabalho: Jogo de Caça-Palavras O jogo de caça-palavras é um passatempo que consiste em descobrir palavras escondidas entre um conjunto de letras espalhadas
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
Árvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Aula 13: Listas encadeadas (estruturas lineares)
Algoritmos e Estruturas de Dados I Aula 13: Listas encadeadas (estruturas lineares) Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Estruturas (alguns autores usam o termo registro) 2 Linguagem
Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta
Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro
ACH04 Aula Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro 1 Tipos de organização de arquivos Sequencial Lista ligada (com ou sem tabela de alocação) Indexada Um
TAD dicionário. Métodos do TAD dicionário:
TAD dicionário O TAD dicionário modela uma coleção buscável de itens chave-elemento As principais operações em dicionários são busca, inserção e remoção de itens Vários itens com a mesma chave são permitidos
Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
ESTRUTURA DE DADOS E ALGORITMOS. Hashing (Tabela de Dispersão) Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Hashing (Tabela de Dispersão) Cristina Boeres Motivação! Os métodos de pesquisa vistos até agora buscam informações armazenadas com base na comparação de suas chaves! Para
Algoritmos e Programação
Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes [email protected] 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes
Árvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:
Hashing (Tabela de Dispersão)
Hashing (Tabela de Dispersão) Prof. Marcos Alves 2009-B Roteiro Contextualização Conceitos Básicos Hashing (método de pesquisa) Hashing Perfeito Hashing Imperfeito Colisões Métodos de Tratamento de Colisões
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
Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Vetores e Matrizes Prof: Luciano Barbosa Recapitulando: Funções 2 Recapitulando: Função Void 3 Recapitulando: Escopo das Variáveis Referência à variável global A variável de escopo
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
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Estrutura de Dados. Aula 07 Alocação Dinâmica
Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).
Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
Transformação de Chave. (Hashing)
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de Chave (Hashing) e Gomes da Costa [email protected] 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing
Aula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
Árvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore
Edital de Seleção 016/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 016/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Transformação de Chave - Hashing
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de Chave (Hashing) e Gomes da Costa [email protected] 1 Transformações de Chave, ou Tabela Hash, ou Tabelas de Dispersão; Hashing
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)
Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01
Trabalho 2 Matriz Esparsa
Trabalho 2 Matriz Esparsa SCC-502 Algoritmos e Estruturas de Dados 1 M. Cristina/Jorge 1 Introdução O trabalho deverá ser feito individualmente e submetido para o sistema SSP (Sistema de Submissão de Programas),
Pesquisa Linear. Adriano J. Holanda 15/3/2016
Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária
Estruturas de Dados. Profº Carlos Alberto Teixeira Batista
Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: [email protected] [email protected] Lista Linear São estruturas formadas por um conjunto de dados de forma a preservar
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
LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz
Vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de dados de um certo tipo; por esta razão, também são conhecidos como estruturas homogêneas de dados. Internamente, um vetor
Tabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich
Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic
INF 1620 P4-13/12/01 Questão 1 Nome:
INF 1620 P4-13/12/01 Questão 1 (a) Escreva uma função em C, chamada somaprod, para calcular a soma e o produto de dois valores inteiros. Esta função deve ter o seguinte efeito: se tivermos duas variáveis
Programação I Matrizes e Strings. Prof. Carlos Alberto
Programação I Matrizes e Strings Prof. Carlos Alberto [email protected] [email protected] Matrizes Matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum;
Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira [email protected] Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)
Listas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações
Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos
Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Estrutura de Dados: Lista Linear. Parte I Introdução e Listas Sequenciais Estáticas
Estrutura de Dados: Lista Linear Parte I Introdução e Listas Sequenciais Estáticas Estrutura de dados: Lista Linear Def. Uma Lista Linear é uma coleção ordenada de componentes de um mesmo tipo. Ela é ou
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
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Índices. SCE-203 Algoritmos e Estruturas de Dados II
Índices SCE-203 Algoritmos e Estruturas de Dados II Índice Em geral, um índice fornece mecanismos para localizar informações Índice de um livro ou catálogo de uma biblioteca Facilitam muito o trabalho
