假设我有以下(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语句来做到这一点,但它变成了一个非常快的噩梦。
解决此问题的最佳方法是什么?
答案 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];