Sobre grafos e passeios em profundidade

E aí galera blz. É a primeira vez que eu posto aqui. :smiley:

Pessoal eu andei fazendo um exercício com um algorítmo em passeio de profundidade mas ele está acusando um problema aqui:

	public void profundidade(int v)
	{
		int i;
		for(i=0;i<numVertices;i++)
		   visitado[i]=0;
		prof(v);
	}
	public void prof(int v)
	{
		int i;
		visitado[v]=1;
                System.out.println(v);
		for(i=0;i<numVertices;i++)
		{
------->		if(matAdj[v][i]!=0 && visitado[i]==0)   <-------
			prof(i);                        
		}
	}

Alguém pode me ajudar eu fiquei uma aula inteirinha tentando resolver esse problema.
Estou aproveitando e passando a classe inteira.Derepente o erro não está só nesse método.

import javax.swing.*;
public class Grafo
{
	public int numVertices;
	public Integer matAdj[][];
	public int visitado[];
	public Grafo(int nv)
	{
		numVertices=nv;
		matAdj=new Integer[nv][nv];
		visitado=new int[nv];
	}
	public void addAresta (int vi, int vj, int peso)
	{
		matAdj[vi][vj]=peso;
		matAdj[vj][vi]=peso;
	}
	public void remAresta(int vi, int vj)
	{
		matAdj[vi][vj]=null;
		matAdj[vj][vi]=null;
	}
	public void imprimePares()
	{
		int i,j;
		String resp="E={";
		for(i=0;i<numVertices;i++)
		{
			for(j=0;j<numVertices;j++)
			{
				if(matAdj[i][j]!=null)
				{
					resp+="("+i+","+j+")";
				}
			}
		}
		resp+="}";
		JOptionPane.showMessageDialog(null,resp,"Pares", JOptionPane.PLAIN_MESSAGE);
	}
	public int grau (int v)
	{
		int i, cont=0;
		for(i=0;i<=numVertices;i++)
		{
			if(matAdj[v][i]!=null)
			{
				cont++;
			}
		}
		return cont;
	}
	public void imprimeMatAdj()
	{
		JTable table;
		JScrollPane saida;
		String nomes[] = new String[numVertices];
		for(char i='A';i<'A'+numVertices;i++)
		    nomes[i-'A']=String.valueOf(i);
		table=new JTable(matAdj,nomes);
		saida=new JScrollPane(table);
		JOptionPane.showMessageDialog(null,saida,"Matriz", JOptionPane.PLAIN_MESSAGE);
	}
	public void profundidade(int v)
	{
		int i;
		for(i=0;i<numVertices;i++)
		   visitado[i]=0;
		prof(v);
	}
	public void prof(int v)
	{
		int i;
		visitado[v]=1;
                System.out.println(v);
		for(i=0;i<numVertices;i++)
		{
			if(matAdj[v][i]!=0 && visitado[i]==0)
			prof(i);                        
		}
	}
	public boolean caminhoEuler()
	{
		int cont,i,j;
		cont=0;
		
		for(i=0;i<=numVertices;i++)
		{
			if(grau(i)%2!=0)
			   cont++;
		}
		return (cont<=2);
	}
	public void amplitude(int v)
	{
		Fila f = new Fila();
		int i,nodo;
		for(i=0;i<numVertices;i++)
		    visitado[i]=0;
		f.enfileirar(v);
		visitado[v]=1;
		while(f.vazia()==false)
		{
			nodo=f.desenfileirar();
			for(i=0;i<numVertices;i++)
			{
				if(matAdj[nodo][i]!=0 && visitado[i]==0)
				{
					JOptionPane.showMessageDialog(null,"A amplitude é:"+i,"Profundidade", JOptionPane.PLAIN_MESSAGE);
					visitado[i]=1;//marca como visitado
					f.enfileirar(i);
				}
			}
		}
	}
	
}

Vou agradecendo desde já!

if(matAdj[v][i]!=0 && visitado[i]==0)

matAdj Integer??? e vc quer saber se é diferente de 0???

INTEGER = classe;
0 = int;

int é primitivo…

reve isso!

abraço

Num entendi o que vc está falando mas eu já tentei com int e não deu certo. Na aula falaram para colocar integer.
Desculpe a ignorancia mas o qual a diferença entre Integer e int?

Que burrice eu tenho que ver se não é nullo e não diferente de 0.
Brigadão Jaison. So mais uma coisa eu descobri que o grau está errado tb no matAdj. Tem como vc dar uma ajudinha? :smiley:

queria que se possivel voce me mandasse o codigo todo !! to tendo que fazer um trabalho tambem de grafos… e n tenho ideia de como fazer java como criar os vetores etc meu email e fraf20@yahoo.com.br meu msn tambem abraco