在2d数组中查找节点邻居

时间:2015-11-22 12:11:10

标签: java

假设我有以下(n * n)数组:

1 2 3 4
5 6 7 8
9 a b c
d e f g

我想编写一个查找给定节点的邻居节点的函数。例如,对于节点1,它将返回一个包含2,6和5的数组。对于节点" a",它将返回一个带有节点5,6,7,b,f,e的向量, d,和9.订单无关紧要。我试图只使用if语句来做到这一点,但它变成了一个非常快的噩梦。

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

var ch = {
    charts0: [],
    charts1: [],
    charts2: [],
    charts3: []
}

编辑:由于您的数组非常大,因此您不必使用array.length(),但这样它将适用于所有类型的数组。

答案 1 :(得分:0)

你可以使用for循环,假设(i,j)是元素的位置,mat是你的数组

mat[n][n]
int res[8];
int x = 0;
for (int k = i - 1 ; k < 2 ;k++)
    for(int t = j-1 ; j  <2 ;j++)
        if ((k > 0) && (t > 0) && (t<n) && (k < n))
            res[x++] = mat[k][t];