SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Luan Trovo Furtile - 82680
Lucas Martins Sabadini - 80669
Marcilio Morihiro Açano - 81342
• Lista Circular Duplamente Encadeada
• Matriz Esparsa
• Lista Circular Duplamente Encadeada
• Teoria..................................................................... 03
• Aplicações.............................................................. 04
• Algoritmo............................................................... 05
• Programa
• Registro.......................................................... 06
• Inserir............................................................. 07
• Remover......................................................... 08
• Matriz Esparsa
• Teoria..................................................................... 09
• Aplicações.............................................................. 10
• Algoritmo............................................................... 11
• Programa
• Registro.......................................................... 12
• Inserir............................................................. 13
• Remover......................................................... 14
• Referências....................................................................... 15
• Lista consiste em uma estrutura que permite representar um conjunto de
dados mantendo a sua ordem;
• Não existe o conceito de “primeiro ou último”;
• Podem ser classificadas como: Estática e Dinâmica.
3
Anterior Valor Próximo
Estrutura de um Nó
4
• Está presente na implementação de jogos;
• Representação de inteiros positivos grandes: consiste em
armazenar os dígitos da direita para a esquerda numa lista
circular (primeiro nó contém o dígito menos significativo, último
nó contém o dígito mais significativo).
5
valor1 valor2 valor3
• Permite percorrer a lista nos dois sentidos;
• Facilita percorrer a lista em ordem inversa;
• Cada elemento guarda os endereços do próximo e do anterior.
6
• Registro
struct lista{
int dados;
struct lista *prox;
struct lista *ant;};
struct lista *primeiro;
struct lista *ultimo;
7
• Inserir
void inserir(int x){
struct lista *aux;
aux=(struct lista*)malloc(sizeof(struct lista));
aux->dados=x;
ultimo->prox=aux;
aux->ant=ultimo;
aux->prox=NULL;
ultimo=ultimo->prox;
aux=NULL;
free(aux);}
8
• Remover
void remover (int x){
int teste=0;
struct lista *aux;
aux=primeiro;
while(aux!=NULL){
if(aux->dados==x){
if(aux->prox==NULL){
printf(“Valor: %dnRemovido! ",aux->dados);
ultimo=ultimo->ant;
ultimo->prox=NULL;
free(aux);
aux=NULL;
teste=1;}
else{
printf(“Valor: %dnRemovidon ",aux->dados);
teste=1;
aux->ant->prox=aux->prox;
aux->prox->ant=aux->ant;
free(aux);
aux=NULL;
} }
else{
aux=aux->prox;}}
if(teste==0){
printf(“Nenhum valor encontrado!n");
} }
• Uma matriz é dita esparsa quando a maioria de seus elementos
são iguais a zero.
Por exemplo:
• Podemos ver no exemplo acima que muito espaço na memória
seria economizado se apenas os elementos não nulos fossem
armazenados.
A =
9
10
• Problemas de engenharia e física (por exemplo, o método das
malhas para resolução de circuitos elétricos ou sistemas de
equações lineares);
• Aplicação em computação: armazenamento de dados (planilhas
eletrônicas);
• A matriz esparsa é implementada através de um conjunto de
listas ligadas que apontam para elementos diferentes de zero.
De forma que os elementos que possuem valor zero não são
armazenados.
• Cada elemento não nulo é mantido simultaneamente em duas listas:
• Uma para sua linha
• Uma para sua coluna
A =
Linha Coluna Valor
ProxLinha ProxColuna
Estrutura de um Nó
Considere a seguinte matriz:
1 1 3
lin[1]
col[1]
1 3 2
2 1 -1lin[2]
lin[3]
3 3 5
col[2]
11
col[3]
#define m ... //número de linhas
#define n ... //número de colunas
typedef struct no {
int linha, coluna, valor;
struct no *proxlin, *proxcol;
} no;
typedef struct {
no *lin[m], *col[n];
} MatrizEsparsa;
• Registro
12
void inserir (int i, int j, int k, Rec *lin[], Rec *col[]){
Rec *p; //aponta registro criado
Rec *q, *qa; //ponteiros para percorrer listas
p = malloc(sizeof(Rec));
p->linha = i;
p->coluna = j;
p->valor = k;
//inserir na lista da coluna j
q = col[j];
qa = NULL;
while (q != NULL){
if (q->linha < i){
qa = q;
q = q->proxcol;
}
else{ //achou a coluna maior
if (qa = NULL) //inserir como primeiro da linha i
lin[i] = p;
else
qa->proxcol= p; //inserir entre qa e q
p-> proxcol = q;
break;
}
}
//inserir como último da lista lin
if (q == NULL);
if (qa == NULL)
lin[i] = p;
else //após qa
qa->proxcol= p;
}
• Inserir
13
boolean eliminar (int i, int j, Rec *lin[], Rec *col[]){
Rec *q, *qa;
//remove da lista da coluna j
q = col[j];
qa = NULL;
while (q != NULL){
if(q->linha <i){
qa = q;
q = q->proxlin;
}
else{ //achou a linha
if (qa == NULL)
//remove da primeiraposição da coluna j
col[j] = q->proxlin;
else //remove ligações para q
qa->proxlin = q->proxlin;
break;
} }
//se não achou elemento retorna False
if (q == NULL)
return false;
//remove da lista da linha i
q = lin[i];
qa = NULL;
while(q !=NULL){
if (q->coluna < j){
qa = q;
q = q->proxcol;
}
else{ //achou coluna
if (ga == NULL)
lin[i] = q->proxcol; //removeda primeira posição da linha
else //remove ligações paraq
qa->proxcol =q->proxcol;
break;
} }
//libera a posição apontada por q
return false;
}
• Remover
14
15
TENENBAUM, A. M.; AUGENSTEIN, M. J.; LANGSAN, Y. Estruturas de
dados usando c. São Paulo: Makron Books do Brasil, 1995. 884p.
PEREIRA, S. D. L. Estruturas de dados fundamentais: conceitos e
aplicações. 5. ed. São Paulo: Erica, 2001. 238p.
SZWARCFITER, J. L.; MARKENZON, L. Estruturas de dados e seus
algoritmos. 2. ed. Rio de Janeiro: Ltc, 1994. 320p.
MIRANDA, Warlisson. Matrizes - Definição e exemplos. Disponível
em: <http://www.warlisson.com.br/teoria/matrizes-definicao-e-
exemplos>. Acesso em 27 ago. 2013.

Contenu connexe

Tendances

POSICIONAMENTO RADIOGRAFICO DE TORAX
POSICIONAMENTO RADIOGRAFICO DE TORAX POSICIONAMENTO RADIOGRAFICO DE TORAX
POSICIONAMENTO RADIOGRAFICO DE TORAX FERNANDADOSSANTOSLIM3
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da InformaçãoMarco Mendes
 
Hashing Technique In Data Structures
Hashing Technique In Data StructuresHashing Technique In Data Structures
Hashing Technique In Data StructuresSHAKOOR AB
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasLeinylson Fontinele
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesAldisio Medeiros
 
Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)Yasser Veleda
 
Doubly & Circular Linked Lists
Doubly & Circular Linked ListsDoubly & Circular Linked Lists
Doubly & Circular Linked ListsAfaq Mansoor Khan
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Projeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoProjeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoFernando Palma
 
3 searching algorithms in Java
3 searching algorithms in Java3 searching algorithms in Java
3 searching algorithms in JavaMahmoud Alfarra
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para SelectElaine Cecília Gatto
 
Lecture 1 data structures and algorithms
Lecture 1 data structures and algorithmsLecture 1 data structures and algorithms
Lecture 1 data structures and algorithmsAakash deep Singhal
 

Tendances (20)

POSICIONAMENTO RADIOGRAFICO DE TORAX
POSICIONAMENTO RADIOGRAFICO DE TORAX POSICIONAMENTO RADIOGRAFICO DE TORAX
POSICIONAMENTO RADIOGRAFICO DE TORAX
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Aula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da InformaçãoAula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da Informação
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 
Hashing Technique In Data Structures
Hashing Technique In Data StructuresHashing Technique In Data Structures
Hashing Technique In Data Structures
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 
Ch1
Ch1Ch1
Ch1
 
Aula 3 - Política de Segurança da Informação (PSI)
Aula 3 - Política de Segurança da Informação (PSI)Aula 3 - Política de Segurança da Informação (PSI)
Aula 3 - Política de Segurança da Informação (PSI)
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas Estáticas
 
Processamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e AplicaçõesProcessamento Digital de Imagens - Fundamentos e Aplicações
Processamento Digital de Imagens - Fundamentos e Aplicações
 
Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)Clean Code (Robert C. Martin)
Clean Code (Robert C. Martin)
 
Doubly & Circular Linked Lists
Doubly & Circular Linked ListsDoubly & Circular Linked Lists
Doubly & Circular Linked Lists
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Projeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoProjeto em Seguranca da Informação
Projeto em Seguranca da Informação
 
3 searching algorithms in Java
3 searching algorithms in Java3 searching algorithms in Java
3 searching algorithms in Java
 
Algoritmos de busca
Algoritmos de buscaAlgoritmos de busca
Algoritmos de busca
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
PBD Select e restrições para Select
PBD Select e restrições para SelectPBD Select e restrições para Select
PBD Select e restrições para Select
 
Lecture 1 data structures and algorithms
Lecture 1 data structures and algorithmsLecture 1 data structures and algorithms
Lecture 1 data structures and algorithms
 
Tuple in python
Tuple in pythonTuple in python
Tuple in python
 

Similaire à Estrutura de dados - Lista Circular Duplamente Encadeada e Matriz Esparsa

Scilab estatistica
Scilab estatisticaScilab estatistica
Scilab estatisticacassiusgo
 
Pierre simon, marquis de laplace nathanael
Pierre simon, marquis de laplace   nathanaelPierre simon, marquis de laplace   nathanael
Pierre simon, marquis de laplace nathanaelcstelene
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcionalLP Maquinas
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelasRicardo Bolanho
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticosTácito Graça
 
Utilização do Software Maxima
Utilização do Software MaximaUtilização do Software Maxima
Utilização do Software MaximaKássio Renê
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07thomasdacosta
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesGustavo Sávio
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STLMarcos Castro
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 

Similaire à Estrutura de dados - Lista Circular Duplamente Encadeada e Matriz Esparsa (20)

Scilab estatistica
Scilab estatisticaScilab estatistica
Scilab estatistica
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
áLgebra linear
áLgebra linearáLgebra linear
áLgebra linear
 
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
 
Perceptron e Multilayer Perceptron
Perceptron e Multilayer PerceptronPerceptron e Multilayer Perceptron
Perceptron e Multilayer Perceptron
 
R tutorial-de-bolso
R tutorial-de-bolsoR tutorial-de-bolso
R tutorial-de-bolso
 
Pierre simon, marquis de laplace nathanael
Pierre simon, marquis de laplace   nathanaelPierre simon, marquis de laplace   nathanael
Pierre simon, marquis de laplace nathanael
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelas
 
Aula 02 operadores aritiméticos
Aula 02   operadores aritiméticosAula 02   operadores aritiméticos
Aula 02 operadores aritiméticos
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
Utilização do Software Maxima
Utilização do Software MaximaUtilização do Software Maxima
Utilização do Software Maxima
 
Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07Estrutura de Dados - Aula 07
Estrutura de Dados - Aula 07
 
Banco II - PostgreSQL - Funções
Banco II - PostgreSQL - FunçõesBanco II - PostgreSQL - Funções
Banco II - PostgreSQL - Funções
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
 
Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 

Plus de Lucas Sabadini

4G e LTE (Long Term Evolution)
4G e LTE (Long Term Evolution)4G e LTE (Long Term Evolution)
4G e LTE (Long Term Evolution)Lucas Sabadini
 
Processamento de Imagens - Filtro Laplaciano
Processamento de Imagens - Filtro LaplacianoProcessamento de Imagens - Filtro Laplaciano
Processamento de Imagens - Filtro LaplacianoLucas Sabadini
 
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...Lucas Sabadini
 
Algorítmo de Identificação de Imagens Através da Implementação de RNA
Algorítmo de Identificação de Imagens Através da Implementação de RNAAlgorítmo de Identificação de Imagens Através da Implementação de RNA
Algorítmo de Identificação de Imagens Através da Implementação de RNALucas Sabadini
 
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo Silva
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo SilvaProjeto consciência negra - E.E. Prof. Carlos de Arnaldo Silva
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo SilvaLucas Sabadini
 
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo Silva
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo SilvaProjeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo Silva
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo SilvaLucas Sabadini
 
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...Lucas Sabadini
 
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...Lucas Sabadini
 
Organização de congresso dos estudantes de administração
Organização de congresso dos estudantes de administraçãoOrganização de congresso dos estudantes de administração
Organização de congresso dos estudantes de administraçãoLucas Sabadini
 
Globalização - O mundo em nossas mãos
Globalização - O mundo em nossas mãosGlobalização - O mundo em nossas mãos
Globalização - O mundo em nossas mãosLucas Sabadini
 
Adminstradores: Andrew Grove
Adminstradores: Andrew GroveAdminstradores: Andrew Grove
Adminstradores: Andrew GroveLucas Sabadini
 
Código de defesa do consumidor
Código de defesa do consumidorCódigo de defesa do consumidor
Código de defesa do consumidorLucas Sabadini
 
Sistemas Operacionais - Windows seven
Sistemas Operacionais - Windows sevenSistemas Operacionais - Windows seven
Sistemas Operacionais - Windows sevenLucas Sabadini
 
Manifestações culturais: modernismo brasileiro
Manifestações culturais: modernismo brasileiroManifestações culturais: modernismo brasileiro
Manifestações culturais: modernismo brasileiroLucas Sabadini
 
Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmicoLucas Sabadini
 
Algoritmos de substituição de páginas: ótimo e nur
Algoritmos de substituição de páginas: ótimo e nurAlgoritmos de substituição de páginas: ótimo e nur
Algoritmos de substituição de páginas: ótimo e nurLucas Sabadini
 
Escalonadores e suas categorias
Escalonadores e suas categoriasEscalonadores e suas categorias
Escalonadores e suas categoriasLucas Sabadini
 
Grandes Corporações da Tecnologia - Asus
Grandes Corporações da Tecnologia - AsusGrandes Corporações da Tecnologia - Asus
Grandes Corporações da Tecnologia - AsusLucas Sabadini
 

Plus de Lucas Sabadini (20)

4G e LTE (Long Term Evolution)
4G e LTE (Long Term Evolution)4G e LTE (Long Term Evolution)
4G e LTE (Long Term Evolution)
 
Processamento de Imagens - Filtro Laplaciano
Processamento de Imagens - Filtro LaplacianoProcessamento de Imagens - Filtro Laplaciano
Processamento de Imagens - Filtro Laplaciano
 
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...
Sistema de Monitoramento da Utilização de Dispositivo de Segurança Veicular C...
 
Algorítmo de Identificação de Imagens Através da Implementação de RNA
Algorítmo de Identificação de Imagens Através da Implementação de RNAAlgorítmo de Identificação de Imagens Através da Implementação de RNA
Algorítmo de Identificação de Imagens Através da Implementação de RNA
 
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo Silva
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo SilvaProjeto consciência negra - E.E. Prof. Carlos de Arnaldo Silva
Projeto consciência negra - E.E. Prof. Carlos de Arnaldo Silva
 
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo Silva
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo SilvaProjeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo Silva
Projeto prevenção também se ensina - E.E. Prof. Carlos de Arnaldo Silva
 
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...
Trabalho de Conclusão de Curso Técnico em Administração: Utilização da Tecnol...
 
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...
Pré-banca TCC Técnico em Administração - Gestão Hospitalar com a Utilização d...
 
Organização de congresso dos estudantes de administração
Organização de congresso dos estudantes de administraçãoOrganização de congresso dos estudantes de administração
Organização de congresso dos estudantes de administração
 
Globalização - O mundo em nossas mãos
Globalização - O mundo em nossas mãosGlobalização - O mundo em nossas mãos
Globalização - O mundo em nossas mãos
 
Estoque mínimo
Estoque mínimoEstoque mínimo
Estoque mínimo
 
Adminstradores: Andrew Grove
Adminstradores: Andrew GroveAdminstradores: Andrew Grove
Adminstradores: Andrew Grove
 
Código de defesa do consumidor
Código de defesa do consumidorCódigo de defesa do consumidor
Código de defesa do consumidor
 
Sistemas Operacionais - Windows seven
Sistemas Operacionais - Windows sevenSistemas Operacionais - Windows seven
Sistemas Operacionais - Windows seven
 
Escolas literárias
Escolas literáriasEscolas literárias
Escolas literárias
 
Manifestações culturais: modernismo brasileiro
Manifestações culturais: modernismo brasileiroManifestações culturais: modernismo brasileiro
Manifestações culturais: modernismo brasileiro
 
Sistema de gestão acadêmico
Sistema de gestão acadêmicoSistema de gestão acadêmico
Sistema de gestão acadêmico
 
Algoritmos de substituição de páginas: ótimo e nur
Algoritmos de substituição de páginas: ótimo e nurAlgoritmos de substituição de páginas: ótimo e nur
Algoritmos de substituição de páginas: ótimo e nur
 
Escalonadores e suas categorias
Escalonadores e suas categoriasEscalonadores e suas categorias
Escalonadores e suas categorias
 
Grandes Corporações da Tecnologia - Asus
Grandes Corporações da Tecnologia - AsusGrandes Corporações da Tecnologia - Asus
Grandes Corporações da Tecnologia - Asus
 

Estrutura de dados - Lista Circular Duplamente Encadeada e Matriz Esparsa

  • 1. Luan Trovo Furtile - 82680 Lucas Martins Sabadini - 80669 Marcilio Morihiro Açano - 81342 • Lista Circular Duplamente Encadeada • Matriz Esparsa
  • 2. • Lista Circular Duplamente Encadeada • Teoria..................................................................... 03 • Aplicações.............................................................. 04 • Algoritmo............................................................... 05 • Programa • Registro.......................................................... 06 • Inserir............................................................. 07 • Remover......................................................... 08 • Matriz Esparsa • Teoria..................................................................... 09 • Aplicações.............................................................. 10 • Algoritmo............................................................... 11 • Programa • Registro.......................................................... 12 • Inserir............................................................. 13 • Remover......................................................... 14 • Referências....................................................................... 15
  • 3. • Lista consiste em uma estrutura que permite representar um conjunto de dados mantendo a sua ordem; • Não existe o conceito de “primeiro ou último”; • Podem ser classificadas como: Estática e Dinâmica. 3 Anterior Valor Próximo Estrutura de um Nó
  • 4. 4 • Está presente na implementação de jogos; • Representação de inteiros positivos grandes: consiste em armazenar os dígitos da direita para a esquerda numa lista circular (primeiro nó contém o dígito menos significativo, último nó contém o dígito mais significativo).
  • 5. 5 valor1 valor2 valor3 • Permite percorrer a lista nos dois sentidos; • Facilita percorrer a lista em ordem inversa; • Cada elemento guarda os endereços do próximo e do anterior.
  • 6. 6 • Registro struct lista{ int dados; struct lista *prox; struct lista *ant;}; struct lista *primeiro; struct lista *ultimo;
  • 7. 7 • Inserir void inserir(int x){ struct lista *aux; aux=(struct lista*)malloc(sizeof(struct lista)); aux->dados=x; ultimo->prox=aux; aux->ant=ultimo; aux->prox=NULL; ultimo=ultimo->prox; aux=NULL; free(aux);}
  • 8. 8 • Remover void remover (int x){ int teste=0; struct lista *aux; aux=primeiro; while(aux!=NULL){ if(aux->dados==x){ if(aux->prox==NULL){ printf(“Valor: %dnRemovido! ",aux->dados); ultimo=ultimo->ant; ultimo->prox=NULL; free(aux); aux=NULL; teste=1;} else{ printf(“Valor: %dnRemovidon ",aux->dados); teste=1; aux->ant->prox=aux->prox; aux->prox->ant=aux->ant; free(aux); aux=NULL; } } else{ aux=aux->prox;}} if(teste==0){ printf(“Nenhum valor encontrado!n"); } }
  • 9. • Uma matriz é dita esparsa quando a maioria de seus elementos são iguais a zero. Por exemplo: • Podemos ver no exemplo acima que muito espaço na memória seria economizado se apenas os elementos não nulos fossem armazenados. A = 9
  • 10. 10 • Problemas de engenharia e física (por exemplo, o método das malhas para resolução de circuitos elétricos ou sistemas de equações lineares); • Aplicação em computação: armazenamento de dados (planilhas eletrônicas); • A matriz esparsa é implementada através de um conjunto de listas ligadas que apontam para elementos diferentes de zero. De forma que os elementos que possuem valor zero não são armazenados.
  • 11. • Cada elemento não nulo é mantido simultaneamente em duas listas: • Uma para sua linha • Uma para sua coluna A = Linha Coluna Valor ProxLinha ProxColuna Estrutura de um Nó Considere a seguinte matriz: 1 1 3 lin[1] col[1] 1 3 2 2 1 -1lin[2] lin[3] 3 3 5 col[2] 11 col[3]
  • 12. #define m ... //número de linhas #define n ... //número de colunas typedef struct no { int linha, coluna, valor; struct no *proxlin, *proxcol; } no; typedef struct { no *lin[m], *col[n]; } MatrizEsparsa; • Registro 12
  • 13. void inserir (int i, int j, int k, Rec *lin[], Rec *col[]){ Rec *p; //aponta registro criado Rec *q, *qa; //ponteiros para percorrer listas p = malloc(sizeof(Rec)); p->linha = i; p->coluna = j; p->valor = k; //inserir na lista da coluna j q = col[j]; qa = NULL; while (q != NULL){ if (q->linha < i){ qa = q; q = q->proxcol; } else{ //achou a coluna maior if (qa = NULL) //inserir como primeiro da linha i lin[i] = p; else qa->proxcol= p; //inserir entre qa e q p-> proxcol = q; break; } } //inserir como último da lista lin if (q == NULL); if (qa == NULL) lin[i] = p; else //após qa qa->proxcol= p; } • Inserir 13
  • 14. boolean eliminar (int i, int j, Rec *lin[], Rec *col[]){ Rec *q, *qa; //remove da lista da coluna j q = col[j]; qa = NULL; while (q != NULL){ if(q->linha <i){ qa = q; q = q->proxlin; } else{ //achou a linha if (qa == NULL) //remove da primeiraposição da coluna j col[j] = q->proxlin; else //remove ligações para q qa->proxlin = q->proxlin; break; } } //se não achou elemento retorna False if (q == NULL) return false; //remove da lista da linha i q = lin[i]; qa = NULL; while(q !=NULL){ if (q->coluna < j){ qa = q; q = q->proxcol; } else{ //achou coluna if (ga == NULL) lin[i] = q->proxcol; //removeda primeira posição da linha else //remove ligações paraq qa->proxcol =q->proxcol; break; } } //libera a posição apontada por q return false; } • Remover 14
  • 15. 15 TENENBAUM, A. M.; AUGENSTEIN, M. J.; LANGSAN, Y. Estruturas de dados usando c. São Paulo: Makron Books do Brasil, 1995. 884p. PEREIRA, S. D. L. Estruturas de dados fundamentais: conceitos e aplicações. 5. ed. São Paulo: Erica, 2001. 238p. SZWARCFITER, J. L.; MARKENZON, L. Estruturas de dados e seus algoritmos. 2. ed. Rio de Janeiro: Ltc, 1994. 320p. MIRANDA, Warlisson. Matrizes - Definição e exemplos. Disponível em: <http://www.warlisson.com.br/teoria/matrizes-definicao-e- exemplos>. Acesso em 27 ago. 2013.