esparsas
#include "esparsas.h"
#include
/* Coloca NUL na memoria apontada por m */ void IniciaMatriz(PontMatriz m){
*m = NUL;
}
/* Libera a memoria de todos os elementos (normais e cabecas) da matriz apontada por m e coloca NUL na posicao de memoria apontada por m */ void LiberaMatriz(PontMatriz m){
PontCab digiampietri = *m;
PontCab aux2;
PontElem dasi;
PontElem aux;
while (digiampietri != NUL){ dasi= digiampietri-> abaixo; while (dasi!=NUL){ aux=dasi; dasi=dasi->abaixo; free (aux);
}
aux2=digiampietri; digiampietri=digiampietri->direita; free(aux2);
}
*m = NUL;
}
/* Simula 'm[i][j] = x', isto e: caso o elemento m[i][j] ja exista atribuiu o valor x a ele (caso x=0, elimina este elemento da matriz); caso o elmeneto m[i][j] nao exista e x!=0 insere o elemento na estrutura */ void AtribuiMatriz(PontMatriz m, int i, int j, float x){
/* Completar */
}
/* Devolve o equivalente a 'm[i][j]' */ float ValorMatriz(Matriz m, int i, int j){
PontCab laura = m;
PontElem thiago; int aux;
while ((laura!=NUL) && (laura ->coluna direita;
}
if (laura==j){ thiago=laura->abaixo; while ((thiago!=NUL) && (thiago -> linha < i)){ thiago = thiago -> abaixo;
}
if (thiago==NUL){ return 0;
}
aux = thiago -> valor; return aux;
}
return 0;
}
/* Retorna as dimensoes maximas de 'm' nas memorias apontadas em
'l' (numero de linhas) e 'c' (numero de colunas). Se m==NUL retorna 0 e 0 nas memorias apontadas por l e c */ void OrdemMatriz(Matriz m, int* l, int* c){
/* Completar */
}
/* Devolve o numero total de nos (elementos do tipo EleMatriz) alocados para representar a matriz esparsa apontada por 'm' */ int NumeroNos(Matriz m){
Georgya
Estrutura de Dados II
UNIFEV
Estrutura de Dados II
Eng. de Computação – 4º período – Noturno
2012
MATRIZES ESPARSAS
Objetivos:
Consiste em concretizar os conceitos de Listas implementadas por através de uma aplicação: Matrizes