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:当然,我们也为您实现了基环树,计划在下个版本发布(大雾)