AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 7 de março de 2013

Método inserir(int pos, objeto novo) numa lista encadeada

Durante a criação desse método, muitas dúvidas sugiram e mesmo pesquisando na internet, não encontrei nenhuma solução simples que me ajudasse efetivamente, alguns amigos me tiraram dúvidas, e até me sugeriram novas rotas para chegar ao resultado. Deu certo, valeu João e Flávio.
 
Ah! Antes que digam que os meus métodos são simples, lembro a todos que sou estudante e ele é voltado para outros estudantes que buscaram justamente soluções simples na internet e só encontraram complexas. Daqui para frente fica mais dificil postar o código inteiro, disponibilizarei métodos e quando for possível, todos o código.
 
Este método abaixo permite o Usuário inserir um objeto em qualquer posição da lista encadeada. O códio foi escrito em Java e espero que ajude a outros estudantes durante sua caminhada.
 
    public void inserir(int pos, Objeto novo) {
        //obj
        Objeto temp = primeiro; //vai receber a lista
        Objeto anterior = null;
        //var
        int posicao = 0;
        int tamanho = tamanho();
 
        //Verifica se a lista está vazia       
        if (temp == null) {
            primeiro = novo;
        }

        //caso a lista não esteja vazia
        if (pos <= tamanho && pos > -1) { //vai garantir as margens
           
            while (posicao != pos) { //Percorre a lista
                anterior = temp; //guarda o anterior
                temp = temp.getProx(); //vai atribuir o proximo a temp
                posicao++; //incrementa a posição
            }
            //valido apenas para a primeira posição
            if (posicao == 0) { //se for para colocar na primeira posicao
                novo.setProx(temp);
                primeiro = novo;
                System.out.println("\nPOSIÇÃO 0");
            } else {
                    //valido para qualquer outra posição               
                    novo.setProx(temp); //o obj novo aponta para o atual
                    anterior.setProx(novo); //o obj anterior aponta para novo
                   
                    System.out.println("\nPOSIÇÃO " + pos);
            } //fim do elsE
        } else {System.out.println("\nPOSIÇÃO INVÁLIDA!");} //fim do else
    } //fim do metodo inserir

Nenhum comentário:

Postar um comentário