从2维数组创建图形边时,arr [i] [0],arr [i] [1]是什么意思?

时间:2017-07-24 05:16:15

标签: java multidimensional-array graph

提供了假设的边缘关系

    edges[][] = [[1,0],[2,0],[3,1],[3,2]] 

尝试创建节点关系时,例如

    List[] list = new ArrayList[10];
    for (int i = 0; i < edges.length; i++) {
        list [edges[i][1]].add(edges[i][0]);
    }

edge [i] [1]和edges [i] [0]在这里是什么意思? 感谢

3 个答案:

答案 0 :(得分:2)

edges [i] [1] - 表示每个第i个元素在edge数组中得到第2个项目; edges [i] [0] - 表示每个第i个元素获得edge数组中的第1个项目;

答案 1 :(得分:1)

当你把它变成变量时会更容易理解,比如:

List[] list = new ArrayList[10];
for (int i = 0; i < edges.length; i++) {
    int i1 = edges[i][1];
    int i0 = edges[i][0];
    list[i1].add(i0);
}

好吧让我们一行一行:

  1. List[] list = new ArrayList[10]; - 创建大小为10的新列表

  2. for (int i = 0; i < edges.length; i++) - 执行edges.length

  3. int i1 = edges[i][1]; - 创建int引用edges[i][1]i第二个值ᵗʰ边缘成员)

  4. int i0 = edges[i][0]; - 创建int引用edges[i][0]i第一个值ᵗʰ边缘成员)

  5. list[i1].add(i0); - 添加{{1}的 iᵗʰ成员第一个值 } edges i1中的地方list(这是一个满口的,请仔细阅读)。

  6. } - 结束循环

答案 2 :(得分:1)

请在下面找到逻辑

的表示
Row No.      |   Column No                   1             |          2

      1      |   1,list of edges{}                 <-------| list of edges(row 1 column 1) & data 0 |

      2      |   2,list of edges{}                 <-------| list of edges(row 2 column 1) & data 0 |

      3      |   3,list of edges{}                 <-------| list of edges(row 3 column 1) & data 1 |

      4      |   3,list of edges{}                 <-------| list of edges(row 4 column 1) & data 2 |