-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmatrix.cpp
More file actions
82 lines (69 loc) · 1.51 KB
/
Copy pathmatrix.cpp
File metadata and controls
82 lines (69 loc) · 1.51 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "matrix.h"
void Matrix::printMatrix() {
for (int i = 0; i < numLine; i++) {
for (int j = 0; j < numColumn; j++) {
std::cout << arr[numColumn * i + j] << " ";
}
std::cout << std::endl;
}
}
int Matrix::currentNumEdge() {
int numEdge = 0;
for (int i = 0; i < numLine - 1; i++) {
for (int j = i + 1; j < numColumn; j++) {
if (arr[numColumn * i + j] == 1)
numEdge++;
}
}
return numEdge;
}
int Matrix::getNumLine() {
if (numLine > 0)
return numLine;
return 0;
}
int Matrix::getNumColumn() {
if (numColumn > 0)
return numColumn;
return 0;
}
void Matrix::setNumLine(int num) {
numLine = num;
}
void Matrix::setNumColumn(int num) {
numColumn = num;
}
void Matrix::setElem(int i, int j, int value) {
arr[numColumn * i + j] = value;
}
void Matrix::addVal(int i, int j, int value) {
arr[numColumn * i + j] += value;
}
void Matrix::difVal(int i, int j, int value) {
arr[numColumn * i + j] -= value;
}
int Matrix::getElem(int i, int j) {
if (!arr.empty()) {
if (numColumn > 0) {
if (arr[numColumn * i + j] > 0) {
return arr[numColumn * i + j];
}
}
}
return 0;
}
Matrix::Matrix(int numLine = 0, int numColumn = 0) {
this->numLine = numLine;
this->numColumn = numColumn;
std::vector<int> arr(numLine * numColumn, 0);
this->arr = arr;
}
Matrix::~Matrix() {
if (!arr.empty()) {
this->arr.clear();
}
}
void Matrix::nullArray() {
std::vector<int> arr(numLine * numColumn, 0);
this->arr = arr;
}