Sparse matrix: How to write
Nov 28, 2019 at 5:21am
https://www.myprepaidcenter.website/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
struct MatrizEncadeadaElemento {
unsigned int linha, coluna;
int valor;
};
class MatrizEncadeada {
vector<MatrizEncadeadaElemento> dados;
public:
void inserirMatriz(int** M, int qLinhas, int qColunas) {
for (int i = 0; i < qLinhas; ++i) {
for (int j = 0; j < qColunas; ++j) {
if (M[i][j]) {
MatrizEncadeadaElemento n(i, j, M[i][j]);
dados.push_back(n);
}
}
}
}
int lerPosicao(int linha, int coluna) {
return 0;
}
vector<MatrizEncadeadaElemento> retornaLista() {
return dados;
}
};
int main() {
MatrizEncadeada me;
int m, n;
int** matriz;
#ifdef __MINGW32__
cout
<< "Digite as dimensões da matriz (linhas e colunas) separadas por espaço "
<< endl;
#endif
cin >> m >> n;
matriz = (int**) calloc(m, sizeof(int*));
for (int i = 0; i < m; ++i)
matriz[i] = (int*) calloc(n, sizeof(int));
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
#ifdef __MINGW32__
cout << "Digite o elemento da posicao " << i << ' ' << j << endl;
#endif
cin >> matriz[i][j];
}
}
me.inserirMatriz(matriz, m, n);
vector<MatrizEncadeadaElemento> v = me.retornaLista();
for (unsigned int i = 0; i < v.size(); ++i)
cout << v[i].linha << ' ' << v[i].coluna << ' ' << v[i].valor << endl;
return 0;
}
|
Last edited on Nov 29, 2019 at 4:23am
Topic archived. No new replies allowed.