在Python中,我有以下内容:
这是一种代表图形的结构,我觉得很好用,因为它的结构与其中一个节点的结构相同,所以我可以直接使用它来初始化搜索(如深度优先搜索)。它的打印版本如下:
graph = {}
graph[1] = {}
graph[2] = {}
graph[3] = {}
graph[1][3] = graph[3]
graph[2][1] = graph[1]
graph[2][3] = graph[3]
graph[3][2] = graph[2]
这是一种代表图形的结构,我觉得很好用,因为它的结构与其中一个节点的结构相同,所以我可以直接使用它来初始化搜索(如深度优先搜索)。它的打印版本如下:
{1: {3: {2: {1: {...}, 3: {...}}}}, 2: {1: {3: {2: {...}}}, 3: {2: {...}}}, 3: {
2: {1: {3: {...}}, 3: {...}}}}
它可以这样使用:
graph[1][3][2][3][2][1][3][2][1][3][2].keys()
现在,我很好奇如何在C++、C#和Java中实现它,而不是借助于填充代码的丑陋转换。对于C++,我想到了模板元编程,但这会生成"有限数据类型",而需要的是类似于
map<int,map<int,...>> or map<int,...>