NoRootTree 类¶
无根树生成器,用于生成无根树。
公开的枚举类型¶
NRT_GEN_CONF
枚举¶
名称 | 注释 |
---|---|
METHOD_CHAIN |
描述生成方案为生成链 |
METHOD_DAISY |
描述生成方案为生成菊花图 |
METHOD_CHAIN_WITH_CHAIN |
描述生成方案为生成链套链 |
METHOD_DAISY_WITH_DAISY |
描述生成方案为生成菊花图套菊花图 |
METHOD_CHAIN_WITH_DAISY |
描述生成方案为生成链套菊花图 |
METHOD_COMP_KB_TREE |
描述生成方案为生成完全 \(K\) 叉树 |
METHOD_RND_TREE |
描述生成方案为生成随机树 |
METHOD_TREE_OVER_TREE |
描述生成方案为生成随机树套随机树 |
公开的成员¶
返回类型 | 函数定义 |
---|---|
NoRootTree(int verCount, int vmin, int vmax) |
|
NoRootTree(int verCount) |
|
void |
Generate(void) |
void |
SpecificGenerate(NRT_GEN_CONF method) |
void |
Output(bool shuffleOutput = true) |
详细注解¶
NoRootTree
构造¶
描述:
无根树的构造函数。
语法:
带边权重载:
1 2 3 4 5 |
|
无边权重载:
1 2 3 |
|
参数:
verCount
:无根树的点数。vmin
:无根树边权最小值(Override!!
)vmax
:无根树边权最大值(Override!!
)
警告:
注意,两个重载之间本质不同!!请注意不要混用。
Generate
方法¶
描述:
启用无根树生成。
语法:
1 |
|
注释:
使用这个函数,您将会有如下概率生成如下结构:
结构 | 概率 |
---|---|
菊花图 | \(5\%\) |
链 | \(5\%\) |
链套链 | \(15\%\) |
菊花图套菊花图 | \(15\%\) |
链套菊花图 | \(20\%\) |
完全 \(K\) 叉树 | \(15\%\) |
随机树 | \(15\%\) |
随机树套随机树 | \(10\%\) |
SpecificGenerate
方法¶
描述:
生成特定树结构。
语法:
1 2 3 |
|
参数:
method
:生成方式,具体见枚举NRT_GEN_CONF
。
Output
方法¶
描述:
输出生成器的生成结果。
语法:
1 2 3 |
|
参数:
shuffleOutput
:打乱输出开关,默认为开启(true
)
使用示例¶
洛谷 P3806 【模板】点分治1 的测试数据生成:
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 |
|
生成一张有 \(30\) 个点的菊花图:
1 2 3 4 5 6 7 8 9 10 |
|