public void RemoverDoComeco() { if (!PosicaoOcupada(0)) { throw new ArgumentException("Posição não existe!"); } Primeira = Primeira.Proxima; TotalDeElementos--; if (TotalDeElementos == 0) { Ultima = null; } }
public void Adicionar(T elemento) { if (TotalDeElementos == 0) { AdicionarNoComeco(elemento); } else { Celula <T> nova = new Celula <T>(elemento); Ultima.Proxima = nova; nova.Anterior = Ultima; Ultima = nova; TotalDeElementos++; } }
private Celula <T> PegarCelula(int posicao) { if (!PosicaoOcupada(posicao)) { throw new ArgumentException("Posição não existe"); } Celula <T> atual = Primeira; for (int i = 0; i < posicao; i++) { atual = atual.Proxima; } return(atual); }
public void AdicionarNoComeco(T elemento) { if (TotalDeElementos == 0) { Celula <T> nova = new Celula <T>(elemento); Primeira = nova; Ultima = Primeira; } else { Celula <T> nova = new Celula <T>(Primeira, elemento); nova.Proxima = Primeira; Primeira.Anterior = nova; Primeira = nova; } TotalDeElementos++; }
public void RemoverDoFim() { if (!PosicaoOcupada(TotalDeElementos - 1)) { throw new ArgumentException("Posição não existe!"); } if (TotalDeElementos == 1) { RemoverDoComeco(); } else if (Ultima != null) { Ultima.Anterior.Proxima = null; Ultima = Ultima.Anterior; TotalDeElementos--; } }
public void Adicionar(int posicao, T elemento) { if (posicao == 0) { AdicionarNoComeco(elemento); } else if (posicao == TotalDeElementos) { Adicionar(elemento); } else { Celula <T> anterior = PegarCelula(posicao - 1); Celula <T> proxima = anterior.Proxima; Celula <T> nova = new Celula <T>(elemento); nova.Anterior = anterior; nova.Proxima = proxima; anterior.Proxima = nova; proxima.Anterior = nova; TotalDeElementos++; } }
public override string ToString() { // Verificando se a Lista esta vazia if (TotalDeElementos == 0) { return("[]"); } StringBuilder builder = new StringBuilder("["); Celula <T> atual = Primeira; // Percorrendo ate o penultimo elemento. for (int i = 0; i < TotalDeElementos - 1; i++) { builder.Append(atual.Elemento); builder.Append(", "); atual = atual.Proxima; } // ultimo elemento builder.Append(atual.Elemento); builder.Append("]"); return(builder.ToString()); }