Example #1
0
        /// <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);*/
            }
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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++;
        }
Example #4
0
 public void Reset()
 {
     atual = null;
 }
Example #5
0
 internal static bool PesquisaValor(TextBox txtNome, NodoLista aux)
 {
     throw new NotImplementedException();
 }