Recursividade

bah… eu to começando em java e to tentando desenvolver um programa que3 controle uma agencia de viagens… to com um problema na definição dos trajetos
por exemplo… eu quero sair de porto alegre pra manaus… mas nao tem onibus q vai direto pra manaus… vai t q passar por outras cidades… e ai terao q ser feitas escalas e trocas d onibus ou d avioes… eu imagino que uma soluçao para o problema seje recursividade mas nao sei como implementá-la… c alguem puder me ajudar eu agradeço…

aki tah meu codigo-fonte…

public class Cidade implements Serializable
{
    protected ListaDeAtividadeDeLazer listAtividades = null;
    protected String nome = null;
    protected int codigo = 0;
    protected Cidade[] ligacoes = new Cidade[5];
    //public boolean passou = false;
    protected int cont = 0;
    
    
    //Metodos de acesso e modificação
    public void setListAtividades(ListaDeAtividadeDeLazer l)
    {
        listAtividades = l;
    }
    
    public ListaDeAtividadeDeLazer getListAtividades()
    {
        return listAtividades;
    }
    
    public void setNome(String n)
    {
        nome = n;
    }
    
    public String getNome()
    {
        return nome;
    }
    
    public void setCodigo(int c)
    {
        codigo = c;
    }
    
    public int getCodigo()
    {
        return codigo;
    }
    
    public void addLigacoes(Cidade c)
    {
        ligacoes[cont] = c;
        cont++;
    }
    
    
    
    //Metodos de algoritmos
    
    
    //busca -
    public void busca(Cidade destino, Cidade proximo, Cidade origem)
    {
        Cidade busca = ligacoes[0];
        Cidade atual = null;
        Cidade destino = null;
        //int saoUsados = 5;
        TrajetosDisponiveis td = new TrajetosDisponiveis();
        this.buscaRecursiva(atual, destino, td);
    }
        
    public TrajetosDisponiveis buscaRecursiva(Cidade atual, Cidade destino, Cidade proximo)  
    {
        
        if (atual.equals(busca))
        {
            return destino;
        }
        else if (proximo.passou == true)
             {
                 
             }
             else for (int i=0; i<5; i++)
                  {
                      //t.addTrajeto(ligacoes[i].buscaRecursiva(destino, proximo, origem));
                      
                      boolean passou = true;
                      System.out.println("Passei pela cidade de " + ligacoes[i].getNome() + "!");
                      this.buscaRecursiva(atual, destino
                  }
    }

vlw ae

[color=“green”][size=“9”]*Editado para adicionar o BBCode ;)[/size][/color]