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

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

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

Transcrição

1 Matrizes Esparsas SCC Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) 17 de agosto de 2010

2 Sumário 1 2 Representação Alternativa Listas Cruzadas Circulares

3 Sumário 1 2 Representação Alternativa Listas Cruzadas Circulares

4 O Problema Representação de matrizes com muitos elementos nulos

5 O Problema Representação de matrizes com muitos elementos nulos P.ex., matriz abaixo, de 5 linhas por 6 colunas: apenas 5 dos 30 elementos são não nulos

6 O Problema Representação de matrizes com muitos elementos nulos P.ex., matriz abaixo, de 5 linhas por 6 colunas: apenas 5 dos 30 elementos são não nulos Precisamos de uma representação que evite o armazenamento de tantos zeros

7 O Problema Representação de matrizes com muitos elementos nulos P.ex., matriz abaixo, de 5 linhas por 6 colunas: apenas 5 dos 30 elementos são não nulos Precisamos de uma representação que evite o armazenamento de tantos zeros Solução: utilizar listas cruzadas como estruturas de dados

8 Representação por Listas Cruzadas Cada elemento identicado pela sua linha, coluna, e valor

9 Representação por Listas Cruzadas Cada elemento identicado pela sua linha, coluna, e valor Cada elemento a ij não-nulo pertence a uma lista de valores não nulos da linha i e também a uma lista de valores não nulos da coluna j

10 Representação por Listas Cruzadas Cada elemento identicado pela sua linha, coluna, e valor Cada elemento a ij não-nulo pertence a uma lista de valores não nulos da linha i e também a uma lista de valores não nulos da coluna j Assim, para matriz de nl linhas e nc colunas, teremos nl listas de linhas e nc listas de colunas

11 Listas Cruzadas

12 Listas Cruzadas

13 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas

14 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas Operações principais

15 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas Operações principais criar_matriz(m) : Cria uma nova matriz esparsa M vazia

16 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas Operações principais criar_matriz(m) : Cria uma nova matriz esparsa M vazia inserir(m, lin, col, valor) : Insere um valor na posição (lin, col) da matriz esparsa M

17 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas Operações principais criar_matriz(m) : Cria uma nova matriz esparsa M vazia inserir(m, lin, col, valor) : Insere um valor na posição (lin, col) da matriz esparsa M remover(m, lin, col) : Remove o valor na posição (lin, col) da matriz esparsa M

18 TAD Matriz Esparsa Pode-se criar um TAD bastante simples para matrizes esparsas Operações principais criar_matriz(m) : Cria uma nova matriz esparsa M vazia inserir(m, lin, col, valor) : Insere um valor na posição (lin, col) da matriz esparsa M remover(m, lin, col) : Remove o valor na posição (lin, col) da matriz esparsa M consultar(m, lin, col) : Retorna o valor na posição (lin, col) da matriz esparsa M

19 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais)

20 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais) somar_matriz(m1, M2, R) : Soma as matrizes M1 e M2 e armazena o resultado em R

21 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais) somar_matriz(m1, M2, R) : Soma as matrizes M1 e M2 e armazena o resultado em R multiplicar_matriz(m1, M2, R) : Multiplica as matrizes M1 e M2 e armazena o resultado em R

22 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais) somar_matriz(m1, M2, R) : Soma as matrizes M1 e M2 e armazena o resultado em R multiplicar_matriz(m1, M2, R) : Multiplica as matrizes M1 e M2 e armazena o resultado em R somar_coluna(m, V, Col) : Soma uma constante V a todos os elementos da coluna Col da Matriz M

23 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais) somar_matriz(m1, M2, R) : Soma as matrizes M1 e M2 e armazena o resultado em R multiplicar_matriz(m1, M2, R) : Multiplica as matrizes M1 e M2 e armazena o resultado em R somar_coluna(m, V, Col) : Soma uma constante V a todos os elementos da coluna Col da Matriz M somar_linha(m, V, Lin) : Soma uma constante V a todos os elementos da linha Lin da Matriz M

24 TAD Matriz Esparsa Operações auxiliares (podem ser criadas a partir das operações principais) somar_matriz(m1, M2, R) : Soma as matrizes M1 e M2 e armazena o resultado em R multiplicar_matriz(m1, M2, R) : Multiplica as matrizes M1 e M2 e armazena o resultado em R somar_coluna(m, V, Col) : Soma uma constante V a todos os elementos da coluna Col da Matriz M somar_linha(m, V, Lin) : Soma uma constante V a todos os elementos da linha Lin da Matriz M E mais: inverter, transpor, calcular determinante, etc...

25 Estrutura de Dados A implementação é facilitada se as listas contêm o nó cabeça 1 #define NLINHAS 5 2 #define NCOLUNAS typedef struct { 5 int valor; 6 } DADO; 7 8 typedef struct CELULA { 9 int lin; 10 int col; 11 DADO dado; 12 struct CELULA *direita; 13 struct CELULA *abaixo; 14 } CELULA; typedef struct { 17 CELULA linha[nlinhas]; 18 CELULA coluna[ncolunas]; 19 } MATRIZ;

26 Operações Vamos implementar as operações criar_matriz(...), limpar_matriz(...), inserir(...), remover(...) e consultar(...) do conjunto de operações principais

27 Operações Vamos implementar as operações criar_matriz(...), limpar_matriz(...), inserir(...), remover(...) e consultar(...) do conjunto de operações principais As demais operações principais e auxiliares cam como exercício

28 Operações Vamos implementar as operações criar_matriz(...), limpar_matriz(...), inserir(...), remover(...) e consultar(...) do conjunto de operações principais As demais operações principais e auxiliares cam como exercício Entretanto, vamos discutir alguns aspectos importantes dessas operações

29 Criar Matriz 1 void criar(matriz *matriz) { 2 int i; 3 4 for (i = 0; i < NLINHAS; i++) { 5 matriz->linha[i].direita = NULL; 6 matriz->linha[i].abaixo = NULL; 7 matriz->linha[i].lin = -1; 8 matriz->linha[i].col = -1; 9 } for (i = 0; i < NCOLUNAS; i++) { 12 matriz->coluna[i].direita = NULL; 13 matriz->coluna[i].abaixo = NULL; 14 matriz->coluna[i].lin = -1; 15 matriz->coluna[i].col = -1; 16 } 17 }

30 Limpar Matriz 1 void limpar_matriz(matriz *matriz) { 2 int i; 3 4 for (i = 0; i < NLINHAS; i++) { 5 CELULA *paux = matriz->linha[i].direita; 6 7 while (paux!= NULL) { 8 CELULA *prem = paux; 9 paux = paux->direita; 10 free(prem); 11 } 12 } 13 }

31 Inserir Valor 1 int inserir(matriz *matriz, int lin, int col, DADO *dado) { 2 if (lin < NLINHAS && col < NCOLUNAS) { 3 ///////////inserir na linha 4 5 //aponta para a posição anterior de inserção 6 CELULA *paux = &matriz->linha[lin]; 7 8 //procurar posição de inserção 9 while (paux->direita!= NULL && paux->direita->col < col) { 10 paux = paux->direita; 11 } //célula já preenchida na martiz 14 if (paux->direita!= NULL && paux->direita->col == col) { 15 paux->direita->dado = *dado; 16 } else { 17 CELULA *pnovo = (CELULA *)malloc(sizeof(celula)); 18 pnovo->dado = *dado; 19 pnovo->lin = lin; 20 pnovo->col = col; pnovo->direita = paux->direita; 23 paux->direita = pnovo; ///////////inserir na coluna 26 paux = &matriz->coluna[col]; //procurar posição de inserção 29 while (paux->abaixo!= NULL && paux->abaixo->lin < lin) { 30 paux = paux->abaixo; 31 } pnovo->abaixo = paux->abaixo; 34 paux->abaixo = pnovo; 35 } return 1; 38 } return 0; 41 }

32 Remover Valor 1 int remover(matriz *matriz, int lin, int col) { 2 if (lin < NLINHAS && col < NCOLUNAS) { 3 //aponta para a posição anterior de remoção 4 CELULA *paux = &matriz->linha[lin]; 5 6 //procurar posição de remoção 7 while (paux->direita!= NULL && paux->direita->col < col) { 8 paux = paux->direita; 9 } if (paux->direita->col == col) { 12 CELULA *prem = paux->direita; 13 paux->direita = paux->direita->direita; 14 free(prem); 15 } return 1; 18 } return 0; 21 }

33 Consultar Valor 1 int consultar(matriz *matriz, int lin, int col, DADO *dado) { 2 if (lin < NLINHAS && col < NCOLUNAS) { 3 CELULA *paux = matriz->linha[lin].direita; 4 5 while (paux!= NULL) { 6 if (paux->col == col) { 7 *dado = paux->dado; 8 return 1; 9 } paux = paux->direita; 12 } dado->valor = 0; return 1; 17 } return 0; 20 }

34 Operações E quando um elemento da matriz original se torna não nulo, em consequência de alguma operação? É necessário inserir na estrutura?

35 Operações E quando um elemento da matriz original se torna não nulo, em consequência de alguma operação? É necessário inserir na estrutura? E quando um elemento da matriz original se tornar nulo? É necessário eliminar da estrutura?

36 Operações P.ex., somar -4 à coluna

37 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional?

38 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos

39 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros

40 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro

41 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas)

42 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos

43 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos 5n espaços para ponteiros (um para cada campo do registro: linha, coluna, valor, direita, abaixo)

44 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos 5n espaços para ponteiros (um para cada campo do registro: linha, coluna, valor, direita, abaixo) 5nl espaços para ponteiros para o vetor linha

45 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos 5n espaços para ponteiros (um para cada campo do registro: linha, coluna, valor, direita, abaixo) 5nl espaços para ponteiros para o vetor linha 5nc espaços para ponteiros para o vetor coluna

46 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos 5n espaços para ponteiros (um para cada campo do registro: linha, coluna, valor, direita, abaixo) 5nl espaços para ponteiros para o vetor linha 5nc espaços para ponteiros para o vetor coluna espaço total: 5n + 5nl + 5nc

47 Desempenho Quando a representação por listas cruzadas é vantajosa em relação à representação convencional? Fator Espaço. Suponhamos matriz esparsa que armazena inteiros ponteiro ocupa o mesmo espaço de memória que um inteiro Matriz Esparsa (Listas Cruzadas) Espaço ocupado por matriz de nl linhas, nc colunas e n valores não-nulos 5n espaços para ponteiros (um para cada campo do registro: linha, coluna, valor, direita, abaixo) 5nl espaços para ponteiros para o vetor linha 5nc espaços para ponteiros para o vetor coluna espaço total: 5n + 5nl + 5nc Na representação bidimensional: espaço total: nl nc

48 Desempenho (Fator Espaço) Conclusão Em termos de espaço ocupado, é vantajoso utilizar a representação de listas cruzadas quando

49 Desempenho (Fator Espaço) Conclusão Em termos de espaço ocupado, é vantajoso utilizar a representação de listas cruzadas quando 5n + 5nl + 5nc < nl nc

50 Desempenho (Fator Espaço) Conclusão Em termos de espaço ocupado, é vantajoso utilizar a representação de listas cruzadas quando 5n + 5nl + 5nc < nl nc ou seja, quando n < [(nl 5) (nc 5) 25]/5

51 Desempenho (Fator Espaço) Conclusão Em termos de espaço ocupado, é vantajoso utilizar a representação de listas cruzadas quando 5n + 5nl + 5nc < nl nc ou seja, quando n < [(nl 5) (nc 5) 25]/5 Como (nl 5) (nc 5) é aproximadamente o tamanho da matriz, pode-se dizer, de uma maneira geral, que há ganho de espaço, quando um número inferior a 1/5 dos elementos da matriz forem não nulos

52 Desempenho (Fator Tempo) As operações sobre listas cruzadas podem ser mais lentas e complexas do que para o caso bidimensional

53 Desempenho (Fator Tempo) As operações sobre listas cruzadas podem ser mais lentas e complexas do que para o caso bidimensional Portanto, para algumas aplicações, deve ser feita uma avaliação do compromisso entre tempo de execução e espaço alocado

54 Representação Alternativa Listas Cruzadas Circulares Sumário 1 2 Representação Alternativa Listas Cruzadas Circulares

55 Representação Alternativa Listas Cruzadas Circulares Representação alternativa Existem ocasiões nas quais não se sabe a princípio qual será o número máximo de linhas ou colunas da matriz esparsa

56 Representação Alternativa Listas Cruzadas Circulares Representação alternativa Existem ocasiões nas quais não se sabe a princípio qual será o número máximo de linhas ou colunas da matriz esparsa Nessas situações, os vetores Coluna e Linha podem ser substituídos por listas ligadas circulares

57 Representação Alternativa Listas Cruzadas Circulares Representação alternativa

58 Representação Alternativa Listas Cruzadas Circulares Exercícios Desenvolva procedimentos para

59 Representação Alternativa Listas Cruzadas Circulares Exercícios Desenvolva procedimentos para Acessar o elemento a ij

60 Representação Alternativa Listas Cruzadas Circulares Exercícios Desenvolva procedimentos para Acessar o elemento a ij Eliminar a ij da matriz

61 Representação Alternativa Listas Cruzadas Circulares Exercícios Desenvolva procedimentos para Acessar o elemento a ij Eliminar a ij da matriz Somar a constante c todos os elementos da coluna j

62 Representação Alternativa Listas Cruzadas Circulares Exercícios Desenvolva procedimentos para Acessar o elemento a ij Eliminar a ij da matriz Somar a constante c todos os elementos da coluna j pode resultar em inserção ou eliminação nas listas.

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

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

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas 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

Leia mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

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

Leia mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

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

Leia mais

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

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Fila e Deque 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

Leia mais

Listas e matrizes esparsas Orthogonal List Representation (Listas Cruzadas) 21/10/2010

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

Leia mais

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Listas Estáticas 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

Leia mais

Aplicações de listas e outras estruturas

Aplicações de listas e outras estruturas 19/1/11 Aplicações de listas e outras estruturas SCC- Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int)

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Á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

Leia mais

Aplicações de listas Outras estruturas

Aplicações de listas Outras estruturas Aplicações de listas Outras estruturas SCC-22 Algoritmos e Estruturas de Dados I Lucas Antiqueira Grandes números 2 Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long

Leia mais

Aplicações de listas e outras estruturas

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

Leia mais

Fila e Deque. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Fila e Deque. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Fila e Deque 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

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca 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

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista Pilha 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

Leia mais

Matrizes esparsas: definição

Matrizes esparsas: definição 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

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

Filas de Prioridade & Heaps

Filas de Prioridade & Heaps Filas de Prioridade & 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

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista Pilha 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

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

SCC Algoritmos e Estruturas de Dados I

SCC Algoritmos e Estruturas de Dados I SCC 202 - Algoritmos e Estruturas de Dados I Lista 4 de Exercícios (Listas Generalizadas, Listas Cruzadas) 1. Sobre listas generalizadas, responda os seguintes itens: (a) Quais suas vantagens? (b) Quais

Leia mais

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

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Ponteiros 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

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

Universidade de São Paulo

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

Leia mais

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic

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

ÁRVORE BINÁRIA DE BUSCA

ÁRVORE BINÁRIA DE BUSCA ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos

Leia mais

Filas Implementação Sequencial

Filas Implementação Sequencial SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção

Leia mais

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos

Leia mais

Árvore Binária de Busca. Prof. César Melo

Árvore Binária de Busca. Prof. César Melo Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e

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

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido

Leia mais

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic

Leia mais

Universidade Federal do Ma Curso de Ciência da Computação

Universidade Federal do Ma Curso de Ciência da Computação Universidade Federal do Ma Curso de Ciência da Computação Estrutura de Dados Prof. Anselmo C. de Paiva Depto de Informática Limitações dos vetores Vetores Simples, Rápidos Mas, é necessário especificar

Leia mais

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense - Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 07: Filas O que é uma fila? 1 4 3 2 Fila 1 2 3 4 O que é uma fila? 1 Fila 1 2 3 4 O que é uma fila? 1 2 Fila 2 3 4 O que é uma fila? 1 3 2

Leia mais

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 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

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção

Leia mais

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 12 - Filas 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 (2004)

Leia mais

Listas Lineares Ordenadas

Listas Lineares Ordenadas Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre

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

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

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo

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

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:

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

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz MAC122 rincípios de Desenvolvimento de Algoritmos Lista de exercícios 01 rof.: aulo Miranda Instituto de Matemática e Estatística (IME) Universidade de São aulo (US) Alocação Dinâmica & Matrizes Questão

Leia mais

1. Listas sequenciais versus listas ligadas. Lista sequencial

1. Listas sequenciais versus listas ligadas. Lista sequencial Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista

Leia mais

Grafos tipo abstrato de dados

Grafos tipo abstrato de dados Algoritmos e Estruturas de Dados II Grafos tipo abstrato de dados Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno 1 Tipo Abstrato de Dados Última aula: TAD grafo? 2 Tipo

Leia mais

Tipos Abstratos de Dados - Exercício

Tipos Abstratos de Dados - Exercício Tipos Abstratos de Dados - Exercício void somar_racionais (RACIONAL *a, RACIONAL *b, RACIONAL *c) c->num = a->num * b->den + b->num * a->den; c->den = a->den * b->den; int equivalencia_racionais (RACIONAL

Leia mais

Trabalho 2 Matriz Esparsa

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),

Leia mais

Aplicação de Árvores: Código de Huffman

Aplicação de Árvores: Código de Huffman Aplicação de Árvores: Código de Huffman SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas

Leia mais

Árvores de Pesquisa (Parte I)

Árvores de Pesquisa (Parte I) Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

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 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.

Leia mais

Estruturas de Dados Aula 11: TAD Pilha

Estruturas de Dados Aula 11: TAD Pilha Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas

Leia mais

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois

Leia mais

Á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 Á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

Leia mais

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 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

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é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

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12) Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;

Leia mais

Filas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Filas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR O que é uma fila? 1 4 3 2 Fila 1 2 3 4 O que é uma fila? Fila 1 2 3 4 O que é uma fila? 1 Fila 2 3 4 O que é uma fila? 1 2 Fila 3 4 O que

Leia mais

SCC122 - Estruturas de Dados. Lista Estática Seqüencial

SCC122 - Estruturas de Dados. Lista Estática Seqüencial SCC122 - Estruturas de Dados Lista Estática Seqüencial Lista Uma lista é uma estrutura que armazena elementos de forma alinhada, ou seja, com elementos dispostos um após o outro. Ex.: Listas de nomes,

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática

Leia mais

A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).

A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out). Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,

Leia mais

Estruturas de Dados Estruturas de Dados Fundamentais

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

Leia mais

i a[i]

i a[i] Técnicas de Hashing Outra forma de se fazer busca em uma tabela, é construir-se a tabela de forma a facilitar a busca, colocando-se cada elemento numa posição pré-determinada. Tal posição é obtida aplicando-se

Leia mais

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 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

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

Leia mais

Aula 05: Listas Encadeadas. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 05: Listas Encadeadas. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 05: Listas Encadeadas Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve

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

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 06: Pilhas

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 06: Pilhas Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 06: Pilhas O que é uma pilha? Pilha 4 4 3 3 2 1 2 1 O que é uma pilha? Pilha 4 4 3 3 2 1 2 1 TAD Pilha Tipo Abstrato de dados com a seguinte

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO SCC-602 Algoritmos e Estruturas de Dados I - EC Profa. Graça Nunes 2º. Semestre de 2010 Prova 1(Gabarito) 16/09/2010 Nome: Nro

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

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 Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas

Leia mais

12. Filas Interface do tipo fila

12. Filas Interface do tipo fila 12. Filas W. Celes e J. L. Rangel Outra estrutura de dados bastante usada em computação é a fila. Na estrutura de fila, os acessos aos elementos também seguem uma regra. O que diferencia a fila da pilha

Leia mais

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para

Leia mais

Lista Encadeada Simples. Métodos Computacionais Victor Casé

Lista Encadeada Simples. Métodos Computacionais Victor Casé Lista Encadeada Simples Métodos Computacionais 2011.2 Victor Casé O que é? É um Tipo Abstrato de Dados Organizar os dados de forma Linear e Dinâmico Você pode pensar visualmente assim : Linear? Existem

Leia mais

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

Leia mais

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010 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

SCC 202 Algoritmos e Estruturas de Dados I. Listas Lineares Encadeadas Alocação dinâmica

SCC 202 Algoritmos e Estruturas de Dados I. Listas Lineares Encadeadas Alocação dinâmica SCC 202 Algoritmos e Estruturas de Dados I Listas Lineares Encadeadas Alocação dinâmica Lista Encadeada Dinâmica Utiliza alocação dinâmica de memória ao invés de arranjos (vetores) pré-alocados. Inserção

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c

Leia mais

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67 Matrizes Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67 Conteúdo Introdução vetores e matrizes Representações de matrizes TADs TAD Vetor TAD Vetor

Leia mais

Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,

Filas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José

Leia mais

Estruturas de Dados Filas

Estruturas de Dados Filas Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados

Leia mais

Lista Encadeada (Linked List)

Lista Encadeada (Linked List) Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de

Leia mais

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc.

Leia mais

Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não

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