コード例 #1
0
        public int InsereEm(object obj, int posicao)
        {
            NoLista atual;
            NoLista noInsere = new NoLista()
            {
                Objeto = obj
            };
            int numAtual = 0;

            if (posicao < 0 || posicao >= numItens)
            {
                throw (new IndexOutOfRangeException());
            }

            if (posicao == 0)
            {
                noInsere.Proximo = topo;
                topo             = noInsere;
                return(0);
            }

            atual    = topo;
            numAtual = 0;
            while (numAtual < posicao - 1)
            {
                atual = atual.Proximo;
                numAtual++;
            }
            noInsere.Proximo = atual.Proximo;
            atual.Proximo    = noInsere;
            return(numAtual);
        }
コード例 #2
0
        public int Insere(object obj)
        {
            NoLista noLista = new NoLista()
            {
                Objeto = obj
            };

            if (topo == null)
            {
                topo   = noLista;
                ultimo = noLista;
            }
            else
            {
                ultimo.Proximo = noLista;
                ultimo         = noLista;
            }
            numItens++;
            return(numItens);
        }
コード例 #3
0
        public int Remove(T obj)
        {
            NoLista <T> atual;
            int         numAtual = 0;

            if (topo == null)
            {
                return(-1);
            }
            if (topo.Objeto.ToString() == obj.ToString())
            {
                topo = topo.Proximo;
                if (ultimo == topo)
                {
                    ultimo = null;
                }
                numItens--;
                return(0);
            }

            numAtual = 1;
            atual    = topo;
            while (atual.Proximo != null)
            {
                if (atual.Proximo.Objeto.ToString() == obj.ToString())
                {
                    if (ultimo == atual.Proximo)
                    {
                        ultimo = atual;
                    }
                    atual.Proximo = atual.Proximo.Proximo;
                    numItens--;
                    return(numAtual);
                }
                atual = atual.Proximo;
                numAtual++;
            }
            return(-1);
        }
コード例 #4
0
 public void Limpa()
 {
     topo     = null;
     numItens = 0;
 }