Lista Encadeada

1 resposta
Q
Fala galera, entaum minha duvida é assim, eu tenho jah a classe NÓ, uma classe chamada LISTA e a classe PRINCIPAL q se encontra o main, blz até ai, soh q a função de remover nó ta errada num to conseguindo ver o erro, e a função de inserção de nós no meio esta errado pq c o cara digita ql o dado anterior e c o dado naum existir ele zera a lista e começa denovo! olha os codigos dos metodos de removerNo e inserirNomeio
public No buscaNo(int dado){
		No tmp = prim;
		while(tmp != null) {
			if (tmp.dado == dado) break;
			else tmp = tmp.prox;
		}
		return tmp;
	}
	
	public void inserirNomeio(int dado, int dadoAnt){
		No tmp = criarNo(dado);
		No aux = buscaNo(dadoAnt);
		if (aux == null){
			prim     = tmp;
			tmp.prox = null;
		}
		else {
			tmp.prox = aux.prox;
			aux.prox = tmp;
		}
	}

                	public boolean removerNo(int dado){
		No aux        = prim;
		int dado_comp = 0;
		boolean achou = false;
		if(prim != null){
			while(aux.dado != dado || aux.prox != null) {
				dado_comp = aux.dado;
				aux = aux.prox;				
			}
			if (aux.dado == dado) {
				No tmp   = buscaNo(dado_comp);
				aux.prox = tmp;
				achou    = true;
			}
		}
		else System.out.println("\t\tLista Vazia");
		return achou;
	}
agora a classe NO:
public class No{
	public int dado;
	public No  prox;
}

c alguem naum tiver entendido muito bem a pergunta escreve ai q me expresso melhor!

[]'s

1 Resposta

M

Geralmente o metodo inserir é baseado na posição. Inserir ( int pos, int valor )

Criado 6 de junho de 2008
Ultima resposta 6 de jun. de 2008
Respostas 1
Participantes 2