int[] vX = verteX.clone();
int[] vY = verteY.clone();
int[] vC = vCost.clone();
int size = vY.length;
for (int i = 0, check = vY[0]; i < size; i++, check = vY[i]) {
LinkedList<Edge> v = new LinkedList<Edge>();
for (int j = 0; j < size; j++) {
if (vY[j] == check) {
Edge e = new Edge();
e.setY(vX[j]);
e.setCost(vC[j]);
v.add(e);
for (int k = j; k < size - 1; vX[k] = vX[k + 1], vY[k] = vY[k + 1], vC[k] = vC[k + 1], k++)
;
size--;
}
}
i -= 1;
}
三个向量各自具有相同数量的元素。vX
,vY
存储每个边的端点以及来自vX
的每个顶点我寻找所有从该顶点开始的边缘并将它们放入一个Edge
结构中,该结构包含结束顶点和该边缘的成本。后来我将它们添加到地图中但是现在我有一个问题,链表不是#39;正确创造,我无法找到我想念的东西。
vX:1 2 3 1 1 4 2
vY:3 5 2 5 2 3 3
vC:2 1 3 2 4 4 9
对于上面的数据,我得到了下面的边。错误的一个是[3,2],它应该在同一个组中,其他边从顶点3开始,但它最后被评估.I继续看着它,我没有看到跳过的原因,你能追踪它吗?
[3,1] [3,4] [5,2] [5,1] [2,3] [2,1] [3,2]
答案 0 :(得分:0)
在第二个中需要=
,似乎它没有到达列表的最后一个元素
for(int j=0;j<=size;j++)