Graph 类¶
用于提供存放图的容器,并支持与生成数据相关的函数。
Warning
该类多用作基类,不建议大家直接使用
自定义生成的时候,请尽量使用继承的方式而不是创建实例。
公开的成员¶
| 返回类型 | 函数定义 |
|---|---|
Graph( int verCount, bool undirectedMap = false, bool weightedMap = false, bool muiltiedgeCheck = false, bool loopCheck = false ) |
|
bool |
add_edge(int from, int to) |
bool |
add_edge(int from, int to, int weight) |
void |
clear(void) |
int |
GetEdgeCount(void) |
void |
Output(bool shuffleOutput = true) |
~Graph(void) |
详细注解¶
Graph 构造¶
描述:
Graph 类的构造函数。
语法:
1 2 3 4 5 6 7 | |
参数:
verCount:图的点数undirectedMap:无向图开关,默认为有向图(false)weightedMap:带权图开关,默认为不带权(false)muiltiedgeCheck:重边检查开关,默认为关闭(false)loopCheck:自环检查开关,默认为关闭(false)
add_edge 方法¶
描述:
用于添加一条边,边的类型请参照构造函数中 weightedMap 部分。
语法:
不带权边重载:
1 2 3 4 | |
带边权重载:
1 2 3 4 5 | |
参数:
from:边的起点to:边的终点weight:边的边权(Override!!)
返回:
若边成功添加,则返回 true
否则返回 false
警告:
该函数的两个重载完全不同,请注意不要混淆,
若不带权图使用了带权图的 add_edge,则会触发断言失败,反之亦然。
clear 方法¶
描述:
用于清空当前容器内的数据。
语法:
1 | |
警告:
注意,clear 并不会自动缩放内存的使用,也就是说,clear 方法仅仅是起到了清空的作用,其并没有释放占用的内存。
GetEdgeCount 方法¶
描述:
用于获取当前容器内拥有多少条边。
语法:
1 | |
返回:
当前容器的边数。
Output 方法¶
描述:
用于输出当前容器内的边。
语法:
1 2 3 | |
参数:
shuffleOutput:打乱输出开关,默认为启用(true)
使用示例¶
实现生成一张不带权的无向基环树:
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 | |
PS:当然,我们也为您实现了基环树,计划在下个版本发布(大雾)