链接列表的乐趣

时间:2013-12-11 10:09:21

标签: java linked-list

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;
}

三个向量各自具有相同数量的元素。vXvY存储每个边的端点以及来自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]

1 个答案:

答案 0 :(得分:0)

在第二个中需要=,似乎它没有到达列表的最后一个元素

for(int j=0;j<=size;j++)