@@ -46,7 +46,7 @@ class Graph {
46
46
return *this ;
47
47
}
48
48
for (size_t i = 0 ; i < edgeMatrix.size (); i++) {
49
- delete edgeMatrix. get (i) ;
49
+ delete edgeMatrix[i] ;
50
50
}
51
51
vertices = other.vertices ;
52
52
edgeMatrix.resize (other.edgeMatrix .size ());
@@ -82,27 +82,27 @@ class Graph {
82
82
void add_Edge (size_t startIv, size_t endIv, Data edge_data) {
83
83
size_t qty_vertex = get_VertexAmount ();
84
84
85
- Edge* exists_edge = edgeMatrix. get ( startIv * qty_vertex + endIv) ;
85
+ Edge*& exists_edge = edgeMatrix[ startIv * qty_vertex + endIv] ;
86
86
87
87
if (exists_edge == nullptr ) {
88
- Edge* newEdge = new Edge (edge_data);
89
- edgeMatrix.set (startIv * qty_vertex + endIv, newEdge);
88
+ exists_edge = new Edge (edge_data);
90
89
}
91
90
else {
92
91
exists_edge->set_EdgeData (edge_data);
93
92
}
93
+
94
94
if (type == GraphType::Undirected) {
95
- Edge* exists_ReverseEdge = edgeMatrix. get ( endIv * qty_vertex + startIv) ;
95
+ Edge*& exists_ReverseEdge = edgeMatrix[ endIv * qty_vertex + startIv] ;
96
96
if (exists_ReverseEdge == nullptr ) {
97
- Edge* newReverseEdge = new Edge (edge_data);
98
- edgeMatrix.set (endIv * qty_vertex + startIv, newReverseEdge);
97
+ exists_ReverseEdge = new Edge (edge_data);
99
98
}
100
99
else {
101
100
exists_ReverseEdge->set_EdgeData (edge_data);
102
101
}
103
102
}
104
103
}
105
104
105
+
106
106
void remove_Edge (size_t startIv, size_t endIv) {
107
107
if (startIv >= get_VertexAmount () || endIv>= get_VertexAmount ()) {
108
108
throw std::out_of_range (" Vertex index out of range." );
0 commit comments