Galera me da uma luz

Ai gente presciso muito de ajuda agora não sei como implementar esses dois metodos eles estão em negrito alguém se puder me dar uma luz…

/**
*
*/
package Trabalho;

import ILista.Ilista;

/**

  • Lista simplesmente encadeada utilizando CÉLULA CABEÇA
  • @author professor

*/
public class ListaCabeca implements Ilista {

// ------------ CLASSES ANINHADAS ------------
/**
 * Classe célula (ou nodo ou nó) que é uma estrutura auto-referenciada para
 * manuseio de listas encadeadas. Uma célula é composta do elemento de uma
 * referência para a próxima célula (que contém o próximo elemento).
 * 
 * @author Willian
 */
protected static class Celula {
	// Elemento que tem que ser comparável
	Object elemento;

	// Referência para a próxima célula
	Celula prox;
}

// ------------ CLASSES ANINHADAS ------------

/**
 * Primeira célula da lista que é a célula cabeça 
 */
private Celula cabeca;

/**
 * Quantidade de elementos armazenados na lista
 */
private int tam;

// ------------ CONSTRUTOR ------------


/**
 * Constrói a lista criando a célula cabeça que não apontará
 * para nenhuma outra célula, visto que a lista está vazia. 
 */
public ListaCabeca() {
	cabeca = new Celula();
	cabeca.elemento = null;
	cabeca.prox = null;
	tam = 0;
}

/**
 * Verifica se a lista está vazia.
 * @return true, se lista vazia, ou false, caso contrário
 */
public boolean estaVazia() {
	return tam == 0;   //  ou (cabeca.prox == null)
}



public void adicionar(Object elem) throws Exception {
	if (elem == null) 
		throw new Exception("Elemento igual a nulo");
	Celula novaCel = new Celula();
	novaCel.elemento = elem;
	novaCel.prox = cabeca.prox;
	cabeca.prox = novaCel;
	tam++;
}


public boolean adicionar(Object elem, int indice) {
	if((tam < 1000000) && (tam > 0)){
		System.out.println("Item adiciona com sucesso.");
	}else{
		System.out.println("Item não pode ser adicionado.");
	}
	return true;
}

/* (non-Javadoc)
 * @see ed2.lista.ILista#contem(java.lang.Object)
 */
public boolean contem(Object elem) {
	for (Celula cel = cabeca.prox; cel != null && cel.elemento.hashCode() <= 0; cel = cel.prox) {
		System.out.println("Item encontrado.");
	}
	System.out.println("Item não encontrado ou não foi adicionado.");
	return true;
}


[b]public String converteString() {
	// TODO Auto-generated method stub
	return null;
}[/b]

/**

  • Imprime os items da lista.
    */
    public void imprime() {
    for (Celula cel = cabeca.prox; cel != null; cel = cel.prox) {
    System.out.print(cel.elemento + " ");
    }

    }

    /* (non-Javadoc)

    • @see ed2.lista.ILista#indiceDe(java.lang.Object)
      */
      public int indiceDe(Object elem) {
      // TODO Auto-generated method stub
      return 0;
      }

    /* (non-Javadoc)

    • @see ed2.lista.ILista#obter(int)
      */
      public Object obter(int indice) {
      if (indice != 0) {
      for (Celula cel = cabeca.prox; cel != null && cel.elemento.hashCode() <= 0; cel = cel.prox) {
      if (cel.elemento.hashCode() == 0)
      return cel.elemento;
      }
      }
      return null;
      }

    /* (non-Javadoc)

    • @see ed2.lista.ILista#remover(java.lang.Object)
      */
      public boolean remover(Object elem) {
      if (elem == null || estaVazia()) {
      return false;
      } else {
      Celula aux;
      for (aux = cabeca; aux.prox != null; aux = aux.prox) {
      if (tam == 0) {
      break;
      }
      }
      if (aux.prox != null && aux.prox.elemento == elem) {
      elem = aux.prox.elemento;
      aux.prox = aux.prox.prox;
      } else {
      return true;
      }
      tam–;
      return true;
      }

    }

    [b]/* (non-Javadoc)

    • @see ed2.lista.ILista#remover(int)
      */
      public boolean remover(int indice) {

      return true;
      }[/b]

    /* (non-Javadoc)

    • @see ed2.lista.ILista#tamanho()
      */
      public int tamanho() {
      System.out.println("Elementos da lista: " + tam);
      return tam;
      }

    /* (non-Javadoc)

    • @see ed2.lista.ILista#vazia()
      */
      public boolean vazia() {

      return tam == 0;
      }

}

pra que dar o peixe né…

Kra o método remover (int indice) como o proprio argumento mostra é baseado no indice, certo?? Então como vc tem uma lista SIMPLESMENTE encadeada, ou seja, a partir de um NODO vc tem acesso ao PROXIMO nodo (não olhei sua implementaçao da lista, estou assumindo q esta funcionando).
Então vc começa a partir do nodo HEAD (CABEÇA DA LISTA) a percorrer UM po UM DOS NODOS e cria um contador que conte o numero de nodos percorridos e também mantenha uma referência ao nodo anterior pq vc vai precisar qdo for remover.

Quando o contador for igual ao int indice (argumento do método) ENTÃO vc encontrou o nodo que vc quer.

É claro que vc vai ter que guardar uma referencia ao nodo anterior ao nodo que vc está, a cada nodo que vc percorrer, pra quando vc remover vc puder ligar o ANTERIOR ao NODO que era o proximo daquele que vc removeu.

è muita coisa pra falar, espero ter dado uma luz pelo menos

[code]public boolean remover(int indice) {

return true;

} [/code]

espero ter ajudado, melhor dar o raciocinio do que o codigo rs

toma ve se ajuda: http://www.guj.com.br/posts/list/21336.java

abraço

qual a sua dúvida diante do SEU problema :?:

  1. nao ter lido as regras do forum :smiley: