Graph 如何在十二面体图中编码邻接列表?

Graph 如何在十二面体图中编码邻接列表?,graph,adjacency-list,Graph,Adjacency List,它有: 20个顶点 30边 G{20,30} 如何为每个顶点1、2、…20生成邻接列表? V1与2和3相连 v2与1和4链接 v3与1和5链接 有什么公式吗?这是一个游戏项目,不知道我是否错过了数学课或什么?我应该学习什么来理解解决方案?我认为链接列表通常是手动构建的。 然而,你可以看一看2:1的三面体的特例,了解如何从立方体到十二面体。(另请查看“笛卡尔坐标”部分中的动画gif) 这告诉我们,十二面体可以通过插入新的顶点,将立方体的12条边平分来构造。然后插入连接这些新顶点的新边,以便它们在交

它有:

20个顶点 30边 G{20,30}

如何为每个顶点1、2、…20生成邻接列表? V1与2和3相连 v2与1和4链接 v3与1和5链接


有什么公式吗?这是一个游戏项目,不知道我是否错过了数学课或什么?我应该学习什么来理解解决方案?

我认为链接列表通常是手动构建的。 然而,你可以看一看2:1的三面体的特例,了解如何从立方体到十二面体。(另请查看“笛卡尔坐标”部分中的动画gif)

这告诉我们,十二面体可以通过插入新的顶点,将立方体的12条边平分来构造。然后插入连接这些新顶点的新边,以便它们在交替方向上平分立方体6个面的每个面

我认为这种理解对构建算法或帮助您构建手动链接列表都有帮助

当然,这只考虑顶点链接,以查找每个顶点的坐标,例如,请参见手动构造的:

int adjs[] = { 1, 4, 7, 0, 2, 9, 1, 3, 11, 2, 4, 13, 0, 3, 5, 4, 6, 14, 5, 7, 16, 0, 6, 8, 7, 9, 17, 1, 8, 10, 9, 11, 18, 2, 10, 12, 11, 13, 19, 3, 12, 14, 5, 13, 15, 14, 16, 19, 6, 15, 17, 8, 16, 18, 10, 17, 19, 12, 15, 18 };

for (int i = 0, int j = 0; i < 20; i++, j = i * 3) {
    caves[i] = Cave(i);
    for (int c = j; c < j + 3; c++) {
        caves[i].adjsListy.addAdj(adjs[c]);
    }
int adjs[]={1,4,7,0,2,9,1,3,11,2,4,13,0,3,5,4,6,14,5,7,16,0,6,8,7,9,17,1,8,10,9,11,18,2,10,12,11,13,19,14,16,19,6,15,17,8,18,10,19,12,15,18};
对于(inti=0,intj=0;i<20;i++,j=i*3){
洞穴[i]=洞穴(i);
对于(int c=j;c
我在以下解决方案中找到了帮助: