public Grafo (Nodo[][] grid){

		malla=grid;
		int N=malla[0].length;
		V=(int)Math.pow(N, 2);
		adjuntos= new ArrayList[V];

		int i,j,k,l,m;
		Nodo n;
		for (k = 0; k < V; k++) 
		{
			adjuntos[k] = new ArrayList<Integer>();
			j=k%N;
			i=(k-j)/N;
			for(l=i-1;l<=i+1;l++)
			{
				for(m=j-1;m<=j+1;m++)
				{
					if(m!=j || l!=i)
					{
						try
						{
							n=malla[l][m];
							adjuntos[k].add(l*N+m);
						}
						catch(IndexOutOfBoundsException e)
						{

						}
					}
				}
			}
		}

		verificarInvariante();

	}