【发布时间】:2015-09-18 10:45:26
【问题描述】:
在给定父子关系的情况下,我正在尝试编写一个程序来查找两个节点之间的距离
输入
1 2
1 3
3 4
3 5
我使用以下代码来获取值。树是双向的,并且与每个节点有单位距离。
代码
Map<Integer, List<Integer>> adjacencies = new HashMap<Integer, List<Integer>>();
for (int i=1; i<=n; i++) {
List<Integer> l1= new ArrayList<Integer>();
adjacencies.put(i,l1);
}
for (int i=0; i<n-1; i++) {
int u = in.nextInt();
int v = in.nextInt();
adjacencies.get(u).add(v);
adjacencies.get(v).add(u);
}
【问题讨论】:
-
如果你有一棵树,我会使用树数据结构来进行树操作。使思考更容易理解和编码。不过,您可以使用地图通过它们的 id 直接访问树节点。
标签: java algorithm data-structures solution