/// <summary> /// Insere um valor no final da lista /// </summary> /// <param name="valor"></param> public void InserirNoFim(Animal valor) { if (qtde == 0) { InserirNoInicio(valor); } else { NodoLista aux = new NodoLista(); aux.Dado = valor; aux.Anterior = ultimo; ultimo.Proximo = aux; ultimo = aux; qtde++; /*Nodo aux = primeiro; * while (aux.Proximo != null) * aux = aux.Proximo; * * InserirNaPosicao(aux, valor);*/ } }
/// <summary> /// Insere em uma posição, iniciando do 0 /// </summary> /// <param name="valor">valor</param> /// <param name="posicao">posicao iniciando do 1</param> public void InserirNaPosicao(Animal valor, int posicao) { if (posicao > qtde || posicao < 0) { throw new Exception("Não é possível inserir."); } if (posicao == 0) { InserirNoInicio(valor); } else { //descobre qual é o nodo anterior ao que será incluído NodoLista aux = primeiro; for (int i = 1; i < posicao; i++) { aux = aux.Proximo; } InserirNaPosicao(aux, valor); } }
/// <summary> /// Método para inserir um valor na lista /// </summary> /// <param name="anterior">o nodo que será o anterior ao nodo inserido. /// Se o novo nodo for o primeiro, passe null</param> /// <param name="valor">o valor a ser inserido</param> private void InserirNaPosicao(NodoLista anterior, Animal valor) { NodoLista novo = new NodoLista(); novo.Dado = valor; if (anterior == null) { if (qtde == 0) { primeiro = novo; ultimo = novo; } else { novo.Proximo = primeiro; primeiro.Anterior = novo; primeiro = novo; } } else { novo.Proximo = anterior.Proximo; novo.Anterior = anterior; anterior.Proximo = novo; if (novo.Proximo == null) { ultimo = novo; } else { novo.Proximo.Anterior = novo; } } qtde++; }
public void Reset() { atual = null; }
internal static bool PesquisaValor(TextBox txtNome, NodoLista aux) { throw new NotImplementedException(); }