Skip to content

Commit 3074e9c

Browse files
authored
Fix CXXGraph::Graph object to have symmetry (parity) in signature for… (#542)
* Fix CXXGraph::Graph object to have symmetry (parity) in signature for (add, remove) x (nodes, edges) Fixes #506 * Fixed Test for DOT and MTX * Fix A success flag when addEdge fails would be useful change to this API Fixes #521
1 parent 9777124 commit 3074e9c

61 files changed

Lines changed: 1891 additions & 1597 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@
1313

1414
[![GitHub license](https://img.shields.io/github/license/ZigRazor/CXXGraph.svg)](https://github.com/ZigRazor/CXXGraph/blob/master/LICENSE) [![GitHub release](https://img.shields.io/github/release/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/releases/) [![Conan Center](https://img.shields.io/conan/v/cxxgraph)](https://conan.io/center/recipes/cxxgraph)
1515

16-
[![Generic badge](https://img.shields.io/badge/Required-G++7.3.0-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/required-C++17-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Required-CMake3.9-Green.svg)](https://shields.io/)
16+
[![Generic badge](https://img.shields.io/badge/Required-G++7.3.0-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/required-C++17-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/Required-CMake3.9-Green.svg)](https://shields.io/)
1717

1818
[![Generic badge](https://img.shields.io/badge/Build-Passed-Green.svg)](https://shields.io/) [![Generic badge](https://img.shields.io/badge/UnitTest-Passed-Green.svg)](https://shields.io/)
1919

2020
## Introduction
21+
2122
**CXXGraph** is a comprehensive C++ library that manages graph algorithms. This header-only library serves as an alternative to the [Boost Graph Library (BGL)](https://www.boost.org/doc/libs/1_77_0/libs/graph/doc/index.html).
2223

2324
[CXXGraph Website](https://zigrazor.github.io/CXXGraph/)
2425

25-
## We are Looking for...
26+
## We are Looking for
2627

2728
**We are looking for:**
2829

2930
- **A Web Developer** for the development of the CXXGraph website. All documentation is currently hosted on this GitHub page.
3031
- **Developers and Contributors** to provide input. If you are new to the open-source world, we will guide you step by step!
3132

32-
If you are interested, please contact us at zigrazor@gmail.com or contribute to this project. We are waiting for you!
33-
33+
If you are interested, please contact us at <zigrazor@gmail.com> or contribute to this project. We are waiting for you!
3434

3535
## Table of Contents
3636

@@ -73,7 +73,6 @@ If you are interested, please contact us at zigrazor@gmail.com or contribute to
7373
- [Other Details](#other-details)
7474
- [Author](#author)
7575

76-
7776
## Install and Uninstall
7877

7978
### Install Linux Tarballs
@@ -114,14 +113,14 @@ For self-compiled installations using CMake, execute the following from the comm
114113

115114
## Prerequisites
116115

117-
- The minimum C++ standard required is **C++17**
116+
- The minimum C++ standard required is **C++17**
118117
- A GCC compiler version 7.3.0 and later *OR* a MSVC compiler that supports C++17
119118

120119
## How to use
121120

122121
To use the library **simply include the header file `CXXGraph.hpp`**, (make sure to add the [include folder](https://github.com/ZigRazor/CXXGraph/tree/master/include) to your compiler's inlcude path).
123122

124-
CXXGraph revolves around the graph object which contains nodes and edges. This object can then be manipulated with a wide variety of algorithms. Please see the [examples section](#examples), [examples folder](https://github.com/ZigRazor/CXXGraph/tree/master/examples) and [website](https://zigrazor.github.io/CXXGraph/) for more information
123+
CXXGraph revolves around the graph object which contains nodes and edges. This object can then be manipulated with a wide variety of algorithms. Please see the [examples section](#examples), [examples folder](https://github.com/ZigRazor/CXXGraph/tree/master/examples) and [website](https://zigrazor.github.io/CXXGraph/) for more information
125124

126125
## Examples
127126

@@ -136,9 +135,9 @@ int main(){
136135
CXXGraph::Node<int> nodeB("B", 2);
137136
CXXGraph::Node<int> nodeC("C", 3);
138137

139-
CXXGraph::DirectedWeightedEdge<int> edge1(1, nodeA, nodeB, 1);
140-
CXXGraph::DirectedWeightedEdge<int> edge2(2, nodeB, nodeC, 1);
141-
CXXGraph::UndirectedWeightedEdge<int> edge3(3, nodeA, nodeC, 6);
138+
CXXGraph::DirectedWeightedEdge<int> edge1("1", nodeA, nodeB, 1);
139+
CXXGraph::DirectedWeightedEdge<int> edge2("2", nodeB, nodeC, 1);
140+
CXXGraph::UndirectedWeightedEdge<int> edge3("3", nodeA, nodeC, 6);
142141

143142
CXXGraph::T_EdgeSet<int> edgeSet;
144143
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
@@ -156,7 +155,6 @@ int main(){
156155

157156
See more examples in the [examples folder](https://github.com/ZigRazor/CXXGraph/tree/master/examples).
158157

159-
160158
## Unit-Test Execution
161159

162160
The Unit-Test requires CMake 3.9 and later, and the **[GoogleTest](https://github.com/google/googletest)** library.
@@ -188,7 +186,7 @@ make # Compile
188186

189187
### How to Run GoogleTest
190188

191-
After the build has compiled, run the "test_exe" executable in the "build" directory with the following command:
189+
After the build has compiled, run the "test_exe" executable in the "build" directory with the following command:
192190

193191
`./test_exe`
194192

@@ -232,7 +230,7 @@ make # Compile
232230

233231
### How to Run Google Benchmark
234232

235-
After the build has compiled, run the "benchmark" executable in the "build" directory with the following command:
233+
After the build has compiled, run the "benchmark" executable in the "build" directory with the following command:
236234

237235
`./benchmark`
238236

@@ -288,6 +286,7 @@ Both the [Doxygen documentation](https://rawcdn.githack.com/ZigRazor/CXXGraph/ma
288286
The Classes Explanation can be found in the [classes section](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/classes.html) of the [Doxygen documentation](https://rawcdn.githack.com/ZigRazor/CXXGraph/master/docs/html/index.html).
289287

290288
#### Network Dynamics
289+
291290
More information can be found [here](https://zigrazor.github.io/CXXGraph/component-explanation/network-dynamics).
292291

293292
- Adjacency Matrix
@@ -296,8 +295,10 @@ More information can be found [here](https://zigrazor.github.io/CXXGraph/compone
296295
- Transition Matrix
297296

298297
### Algorithms
299-
The following is a list of all the implemented algorithms, more information on the algorithms can be found [here](https://zigrazor.github.io/CXXGraph/component-explanation/regular-algorithm).
300-
#### Graph Traversal Algorithms.
298+
299+
The following is a list of all the implemented algorithms, more information on the algorithms can be found [here](https://zigrazor.github.io/CXXGraph/component-explanation/regular-algorithm).
300+
301+
#### Graph Traversal Algorithms
301302

302303
- Breadth First Search (BFS)
303304
- Depth First Search (DFS)
@@ -336,24 +337,25 @@ The following is a list of all the implemented algorithms, more information on t
336337
- Tarjan’s Algorithm (DFS-based topological sorting)
337338

338339
#### Eulerian Path/Cycle Detection
340+
339341
- Hierholzer's Algorithm
340342

341343
#### Graph Transformation
344+
342345
- Transitive Reduction (reduce graph to essential edges while preserving reachability)
343346

344347
#### Graph Coloring Algorithms
345-
- Welsh–Powell Coloring Algorithm
346348

349+
- Welsh–Powell Coloring Algorithm
347350

348351
#### Partition Algorithms
352+
349353
- Vertex-Cut
350354
- Edge Balanced Vertex-Cut
351355
- Edge Balanced Vertex-Cut based on this [paper](https://arxiv.org/abs/2010.09007)
352356
- Greedy Vertex-Cut
353357
- High Degree Replicated First
354358

355-
356-
357359
## How to contribute
358360

359361
[![GitHub contributors](https://img.shields.io/github/contributors/ZigRazor/CXXGraph.svg)](https://GitHub.com/ZigRazor/CXXGraph/graphs/contributors/)
@@ -362,7 +364,6 @@ If you want to change the code, fix an issue, or implement a new feature please
362364

363365
If you want to discuss new features or you have any questions or suggestions about the library, please open a [Discussion](https://github.com/ZigRazor/CXXGraph/discussions) or simply chat on [![Join the chat at https://gitter.im/CXXGraph-Community/community](https://badges.gitter.im/CXXGraph-Community/community.svg)](https://gitter.im/CXXGraph-Community/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
364366

365-
366367
## Roadmap
367368

368369
| Completed | Description | Date of Completition |
@@ -384,7 +385,7 @@ If you want to discuss new features or you have any questions or suggestions abo
384385

385386
## Contact
386387

387-
E-mail : zigrazor@gmail.com
388+
E-mail : <zigrazor@gmail.com>
388389

389390
[![Join the chat at https://gitter.im/CXXGraph-Community/community](https://badges.gitter.im/CXXGraph-Community/community.svg)](https://gitter.im/CXXGraph-Community/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
390391

@@ -416,11 +417,11 @@ Thanks to [GeeksForGeeks](https://www.geeksforgeeks.org/) for some algorithm ins
416417

417418
Thank you to all the people who have already contributed to CXXGraph!
418419

419-
[![Contributors](https://contrib.rocks/image?repo=zigrazor/CXXGraph)](https://github.com/ZigRazor/CXXGraph/graphs/contributors)
420+
[![Contributors](https://contrib.rocks/image?repo=zigrazor/CXXGraph)](https://github.com/ZigRazor/CXXGraph/graphs/contributors)
420421

421422
## Cited By
422423

423-
- Ruizhe Wang, Meng Xu, and N. Asokan. 2024. SeMalloc: Semantics-Informed Memory Allocator. In Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security (CCS '24). Association for Computing Machinery, New York, NY, USA, 1375–1389. https://doi.org/10.1145/3658644.3670363
424+
- Ruizhe Wang, Meng Xu, and N. Asokan. 2024. SeMalloc: Semantics-Informed Memory Allocator. In Proceedings of the 2024 on ACM SIGSAC Conference on Computer and Communications Security (CCS '24). Association for Computing Machinery, New York, NY, USA, 1375–1389. <https://doi.org/10.1145/3658644.3670363>
424425

425426
## Cite Us
426427

@@ -437,4 +438,3 @@ View the [Estimated Value of the Project](https://www.openhub.net/p/CXXGraph/est
437438

438439
| [<img src="https://avatars0.githubusercontent.com/u/6591180?s=460&v=4" width="100"><br><sub>@ZigRazor</sub>](https://github.com/ZigRazor) |
439440
|:----:|
440-

benchmark/Edge_BM.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ static void BM_EdgeCreation(benchmark::State &state) {
88
auto n1 = *nodes.at(0);
99
auto n2 = *nodes.at(1);
1010
for (auto _ : state) {
11-
CXXGraph::Edge<int> e(1, n1, n2);
11+
CXXGraph::Edge<int> e("1", n1, n2);
1212
}
1313
state.SetComplexityN(2);
1414
}
@@ -21,7 +21,7 @@ static void EdgeCreationDestruction_new_delete(benchmark::State &state) {
2121
auto n2 = *nodes.at(1);
2222
CXXGraph::Edge<int> *e;
2323
for (auto _ : state) {
24-
e = new CXXGraph::Edge<int>(1, n1, n2);
24+
e = new CXXGraph::Edge<int>("1", n1, n2);
2525
delete e;
2626
}
2727
state.SetComplexityN(2);
@@ -33,7 +33,7 @@ static void EdgeGetId(benchmark::State &state) {
3333
auto nodes = generateRandomNodes(2, 2);
3434
auto n1 = *nodes.at(0);
3535
auto n2 = *nodes.at(1);
36-
CXXGraph::Edge<int> e(1, n1, n2);
36+
CXXGraph::Edge<int> e("1", n1, n2);
3737
for (auto _ : state) {
3838
e.getId();
3939
}
@@ -45,7 +45,7 @@ static void NodeGetNodePair(benchmark::State &state) {
4545
auto nodes = generateRandomNodes(2, 2);
4646
auto n1 = *nodes.at(0);
4747
auto n2 = *nodes.at(1);
48-
CXXGraph::Edge<int> e(1, n1, n2);
48+
CXXGraph::Edge<int> e("1", n1, n2);
4949
for (auto _ : state) {
5050
e.getNodePair();
5151
}

benchmark/FloydWarshall_BM.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ static void BM_FWDirected(benchmark::State &state) {
1414
CXXGraph::Node<int> node3("3", 3);
1515
CXXGraph::Node<int> node4("4", 4);
1616

17-
CXXGraph::DirectedWeightedEdge<int> edge1(1, node2, node1, 4);
18-
CXXGraph::DirectedWeightedEdge<int> edge2(2, node1, node3, -2);
19-
CXXGraph::DirectedWeightedEdge<int> edge3(3, node3, node4, 2);
20-
CXXGraph::DirectedWeightedEdge<int> edge4(4, node4, node2, -1);
21-
CXXGraph::DirectedWeightedEdge<int> edge5(3, node2, node3, 3);
17+
CXXGraph::DirectedWeightedEdge<int> edge1("1", node2, node1, 4);
18+
CXXGraph::DirectedWeightedEdge<int> edge2("2", node1, node3, -2);
19+
CXXGraph::DirectedWeightedEdge<int> edge3("3", node3, node4, 2);
20+
CXXGraph::DirectedWeightedEdge<int> edge4("4", node4, node2, -1);
21+
CXXGraph::DirectedWeightedEdge<int> edge5("3", node2, node3, 3);
2222

2323
CXXGraph::T_EdgeSet<int> edgeSet;
2424
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
@@ -40,9 +40,9 @@ static void BM_FWNegCycle(benchmark::State &state) {
4040
CXXGraph::Node<int> node0("0", 0);
4141
CXXGraph::Node<int> node1("1", 1);
4242
CXXGraph::Node<int> node2("2", 2);
43-
CXXGraph::DirectedWeightedEdge<int> edge1(1, node0, node1, 2);
44-
CXXGraph::DirectedWeightedEdge<int> edge2(2, node1, node2, 3);
45-
CXXGraph::DirectedWeightedEdge<int> edge3(3, node2, node0, -7);
43+
CXXGraph::DirectedWeightedEdge<int> edge1("1", node0, node1, 2);
44+
CXXGraph::DirectedWeightedEdge<int> edge2("2", node1, node2, 3);
45+
CXXGraph::DirectedWeightedEdge<int> edge3("3", node2, node0, -7);
4646
CXXGraph::T_EdgeSet<int> edgeSet;
4747
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
4848
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge2));
@@ -61,9 +61,9 @@ static void BM_FWUndirectedWeighted(benchmark::State &state) {
6161
CXXGraph::Node<int> node3("3", 3);
6262
std::pair<const CXXGraph::Node<int> *, const CXXGraph::Node<int> *> pairNode(
6363
&node1, &node2);
64-
CXXGraph::DirectedWeightedEdge<int> edge1(1, pairNode, 1);
65-
CXXGraph::DirectedWeightedEdge<int> edge2(2, node2, node3, 1);
66-
CXXGraph::UndirectedWeightedEdge<int> edge3(3, node1, node3, 6);
64+
CXXGraph::DirectedWeightedEdge<int> edge1("1", pairNode, 1);
65+
CXXGraph::DirectedWeightedEdge<int> edge2("2", node2, node3, 1);
66+
CXXGraph::UndirectedWeightedEdge<int> edge3("3", node1, node3, 6);
6767
CXXGraph::T_EdgeSet<int> edgeSet;
6868
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
6969
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge2));
@@ -82,9 +82,9 @@ static void BM_FWNoWeighted(benchmark::State &state) {
8282
CXXGraph::Node<int> node3("3", 3);
8383
std::pair<const CXXGraph::Node<int> *, const CXXGraph::Node<int> *> pairNode(
8484
&node1, &node2);
85-
CXXGraph::DirectedWeightedEdge<int> edge1(1, pairNode, 1);
86-
CXXGraph::DirectedWeightedEdge<int> edge2(2, node2, node3, 1);
87-
CXXGraph::DirectedEdge<int> edge3(3, node1, node3);
85+
CXXGraph::DirectedWeightedEdge<int> edge1("1", pairNode, 1);
86+
CXXGraph::DirectedWeightedEdge<int> edge2("2", node2, node3, 1);
87+
CXXGraph::DirectedEdge<int> edge3("3", node1, node3);
8888
CXXGraph::T_EdgeSet<int> edgeSet;
8989
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
9090
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge2));

benchmark/Graph_BM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ static void AddEdge(benchmark::State &state) {
1818
CXXGraph::Graph<int> g;
1919
auto n1 = *nodes.at(0);
2020
auto n2 = *nodes.at(1);
21-
CXXGraph::Edge<int> e(1, n1, n2);
21+
CXXGraph::Edge<int> e("1", n1, n2);
2222
for (auto _ : state) {
2323
g.addEdge(&e);
2424
}

benchmark/Utilities.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ static std::map<unsigned long, CXXGraph::Edge<int> *> generateRandomEdges(
4242
randomNumber1 = (distribution(rand) % MaxValue);
4343
randomNumber2 = (distribution(rand) % MaxValue);
4444
CXXGraph::Edge<int> *newEdge = new CXXGraph::Edge<int>(
45-
index, *(nodes.at(randomNumber1)), *(nodes.at(randomNumber2)));
45+
std::to_string(index), *(nodes.at(randomNumber1)),
46+
*(nodes.at(randomNumber2)));
4647
edges[index] = newEdge;
4748
}
4849
return edges;
@@ -67,7 +68,8 @@ generateRandomUndirectedEdges(
6768
randomNumber1 = (distribution(rand) % MaxValue);
6869
randomNumber2 = (distribution(rand) % MaxValue);
6970
CXXGraph::UndirectedEdge<int> *newEdge = new CXXGraph::UndirectedEdge<int>(
70-
index, *(nodes.at(randomNumber1)), *(nodes.at(randomNumber2)));
71+
std::to_string(index), *(nodes.at(randomNumber1)),
72+
*(nodes.at(randomNumber2)));
7173
edges[index] = newEdge;
7274
}
7375
return edges;

examples/DijkstraExample/dijkstra_example.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ int main() {
99
CXXGraph::Node<int> node2("2", 2);
1010
CXXGraph::Node<int> node3("3", 3);
1111

12-
CXXGraph::DirectedWeightedEdge<int> edge1(1, node1, node2, 2.0);
13-
CXXGraph::DirectedWeightedEdge<int> edge2(2, node2, node3, 2.0);
14-
CXXGraph::DirectedWeightedEdge<int> edge3(3, node0, node1, 2.0);
15-
CXXGraph::DirectedWeightedEdge<int> edge4(4, node0, node3, 1.0);
12+
CXXGraph::DirectedWeightedEdge<int> edge1("1", node1, node2, 2.0);
13+
CXXGraph::DirectedWeightedEdge<int> edge2("2", node2, node3, 2.0);
14+
CXXGraph::DirectedWeightedEdge<int> edge3("3", node0, node1, 2.0);
15+
CXXGraph::DirectedWeightedEdge<int> edge4("4", node0, node3, 1.0);
1616

1717
CXXGraph::T_EdgeSet<int> edgeSet;
1818
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));

examples/FloydWarshallExample/floyd_warshall.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ int main() {
1111
CXXGraph::Node<int> node3("3", 3);
1212
CXXGraph::Node<int> node4("4", 4);
1313

14-
CXXGraph::UndirectedWeightedEdge<int> edge1(1, node0, node1, 1);
15-
CXXGraph::UndirectedWeightedEdge<int> edge2(2, node0, node2, 2);
16-
CXXGraph::UndirectedWeightedEdge<int> edge3(3, node1, node2, 6);
17-
CXXGraph::UndirectedWeightedEdge<int> edge4(4, node1, node3, 4);
18-
CXXGraph::UndirectedWeightedEdge<int> edge5(5, node2, node3, 5);
19-
CXXGraph::UndirectedWeightedEdge<int> edge6(6, node3, node4, 3);
14+
CXXGraph::UndirectedWeightedEdge<int> edge1("1", node0, node1, 1);
15+
CXXGraph::UndirectedWeightedEdge<int> edge2("2", node0, node2, 2);
16+
CXXGraph::UndirectedWeightedEdge<int> edge3("3", node1, node2, 6);
17+
CXXGraph::UndirectedWeightedEdge<int> edge4("4", node1, node3, 4);
18+
CXXGraph::UndirectedWeightedEdge<int> edge5("5", node2, node3, 5);
19+
CXXGraph::UndirectedWeightedEdge<int> edge6("6", node3, node4, 3);
2020

2121
CXXGraph::T_EdgeSet<int> edgeSet;
2222
edgeSet.insert(make_shared<CXXGraph::UndirectedWeightedEdge<int>>(edge1));

examples/NetworkDynamicsExample/network_dynamics_example.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ int main() {
1010
CXXGraph::Node<int> node2("2", 2);
1111
CXXGraph::Node<int> node3("3", 3);
1212

13-
CXXGraph::UndirectedWeightedEdge<int> edge1(1, node1, node2, 2.0);
14-
CXXGraph::UndirectedWeightedEdge<int> edge2(2, node2, node3, 2.0);
15-
CXXGraph::UndirectedWeightedEdge<int> edge3(3, node0, node1, 2.0);
16-
CXXGraph::UndirectedWeightedEdge<int> edge4(4, node0, node3, 1.0);
13+
CXXGraph::UndirectedWeightedEdge<int> edge1("1", node1, node2, 2.0);
14+
CXXGraph::UndirectedWeightedEdge<int> edge2("2", node2, node3, 2.0);
15+
CXXGraph::UndirectedWeightedEdge<int> edge3("3", node0, node1, 2.0);
16+
CXXGraph::UndirectedWeightedEdge<int> edge4("4", node0, node3, 1.0);
1717

1818
CXXGraph::T_EdgeSet<int> edgeSet;
1919
edgeSet.insert(make_shared<CXXGraph::UndirectedWeightedEdge<int>>(edge1));

examples/PrimExample/prim_example.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@ int main() {
1717
CXXGraph::Node<int> node7("7", 7);
1818
CXXGraph::Node<int> node8("8", 8);
1919

20-
CXXGraph::UndirectedWeightedEdge<int> edge1(1, node0, node1, 4);
21-
CXXGraph::UndirectedWeightedEdge<int> edge2(2, node0, node7, 8);
22-
CXXGraph::UndirectedWeightedEdge<int> edge3(3, node1, node7, 11);
23-
CXXGraph::UndirectedWeightedEdge<int> edge4(4, node1, node2, 8);
24-
CXXGraph::UndirectedWeightedEdge<int> edge5(5, node2, node8, 2);
25-
CXXGraph::UndirectedWeightedEdge<int> edge6(6, node2, node5, 4);
26-
CXXGraph::UndirectedWeightedEdge<int> edge7(7, node2, node3, 7);
27-
CXXGraph::UndirectedWeightedEdge<int> edge8(8, node3, node3, 1);
28-
CXXGraph::UndirectedWeightedEdge<int> edge9(9, node3, node4, 9);
29-
CXXGraph::UndirectedWeightedEdge<int> edge10(10, node3, node5, 14);
30-
CXXGraph::UndirectedWeightedEdge<int> edge11(11, node4, node5, 10);
31-
CXXGraph::UndirectedWeightedEdge<int> edge12(12, node5, node6, 2);
32-
CXXGraph::UndirectedWeightedEdge<int> edge13(13, node6, node8, 6);
33-
CXXGraph::UndirectedWeightedEdge<int> edge14(14, node6, node7, 1);
34-
CXXGraph::UndirectedWeightedEdge<int> edge15(15, node7, node8, 7);
20+
CXXGraph::UndirectedWeightedEdge<int> edge1("1", node0, node1, 4);
21+
CXXGraph::UndirectedWeightedEdge<int> edge2("2", node0, node7, 8);
22+
CXXGraph::UndirectedWeightedEdge<int> edge3("3", node1, node7, 11);
23+
CXXGraph::UndirectedWeightedEdge<int> edge4("4", node1, node2, 8);
24+
CXXGraph::UndirectedWeightedEdge<int> edge5("5", node2, node8, 2);
25+
CXXGraph::UndirectedWeightedEdge<int> edge6("6", node2, node5, 4);
26+
CXXGraph::UndirectedWeightedEdge<int> edge7("7", node2, node3, 7);
27+
CXXGraph::UndirectedWeightedEdge<int> edge8("8", node3, node3, 1);
28+
CXXGraph::UndirectedWeightedEdge<int> edge9("9", node3, node4, 9);
29+
CXXGraph::UndirectedWeightedEdge<int> edge10("10", node3, node5, 14);
30+
CXXGraph::UndirectedWeightedEdge<int> edge11("11", node4, node5, 10);
31+
CXXGraph::UndirectedWeightedEdge<int> edge12("12", node5, node6, 2);
32+
CXXGraph::UndirectedWeightedEdge<int> edge13("13", node6, node8, 6);
33+
CXXGraph::UndirectedWeightedEdge<int> edge14("14", node6, node7, 1);
34+
CXXGraph::UndirectedWeightedEdge<int> edge15("15", node7, node8, 7);
3535

3636
CXXGraph::T_EdgeSet<int> edgeSet;
3737
edgeSet.insert(make_shared<CXXGraph::UndirectedWeightedEdge<int>>(edge1));

0 commit comments

Comments
 (0)