Dúvida em Algoritmo de Menor Caminho

Boa noite pessoal…
Estou tentando implementar um algoritmo de menor caminho (Algoritmo de Dijkstra) mas estou encontrando um erro… já revirei várias páginas e fóruns mas nada… o lugar onde está dando o erro, está com uma <—… e é o famoso java.lang.NullPointerException.
Alguém tem alguma luz?

[code]
public class Algoritmo extends Matriz {

public float dv[]; //vetor com os pesos
public int vet[]; // vetor com o caminho
public int x; // contador
public int y; // contador
public int cont = 1; // contador conjunto U
public int loc; // localizador conjunto U
//int lista[]; // recebe menor caminho para impressao
public int vx; // vertice atual
public int du; // peso do vertice anterior
public int uTem; // testa se é adjacente
public int u[]; // U Posiçao
public int z;// u Peso
public float menor_d; // menor distancia

public float[] getDv() {
	return dv;
}

public void setDv(float[] dv) {
	this.dv = dv;
}

public int[] getVet() {
	return vet;
}

public void setVet(int[] vet) {
	this.vet = vet;
}


public Algoritmo(){
	for(x = 0; x<getQtdv(); x++){
		vet[x] = -1;
		dv[x] = Integer.MAX_VALUE;
	
} // fecha for
	
dv[getVo()] = 0;
u[0] = getVo();
z = getVo();

}// fecha construtor

{
do{
	for(x=0; x<getQtdv();x++){
		
		if((vx!=z) && (matriz[z][x]!=0) && (vx!=u[x])&&(dv[x]>du+(matriz[z][vx]))){ //precisa incrementar o calculo Dvi, pois esse dv[x] segnifica D(vi)
			dv[x] = du + matriz[z][vx];
			vet[x] = z;
		}
		
	}// fecha for 1
	
    menor_d = Integer.MAX_VALUE;
    
	for(x=0; x<getQtdv();x++){
		
		if((testaU()!=0) && (dv[x]<menor_d)){
			menor_d = dv[x];
			z = vx; 
		}
	uTem = 0;	
	}// fecha for 2
	
	u[1] = 1; <---- ERRO AQUI
	cont = cont+1; 
	
				 
}while(z == getVd());}
	

public int testaU() {
	for(x=0;x<getQtdv();x++){
		if(u[x]!=0){
			uTem = u[x];}
}
	return uTem; 
}

public int[] getU() {
	return u;
}

}// fim da classe[/code]

veja aki


           
     dv[getVo()] = 0;  
     u[0] = getVo();  
     z = getVo();  
       
 }// fecha construtor

so passas elemento neste vector na posiçao zero …
e aqui…


        u[1] = 1; <---- ERRO AQUI  
         cont = cont+1;                                     
  }

tas a invocar a posiçao numero 1 do vector que nao meteste la nada…pk este teu vector so tem algo na posiçao zero…

Bom trabalho…cara

Olá meu caro amigo Alkamavo…
Acabei de ver que nos testes pra descobrir o motivo desse erro, esqueci de voltar o algoritmo pra situação original…
Na verdade, a linha é:

u[cont] = 1; <---- ERRO AQUI   

Amigo me mata uma curiosidade, onde vc iniciou o vetor u? Não encontrei no código.

Me pergunto que relação de herança Algoritmo tem com Matriz. Você não quis dizer que algoritmo usa uma matriz ao invés de algoritmo é uma matriz?