public void Remover(NoLista <Dado> ant, NoLista <Dado> atu) { if (EstaVazia) { return; } // se o fluxo de execução segue para cá, a lista não // está vazia e, portanto, temos ao menos um nó if (atu == primeiro) // queremos excluir o 1o nó { primeiro = primeiro.Prox; // aponta o 2o nó if (primeiro == null) { ultimo = null; } } else if (atu == ultimo) // vamos excluir o último nó { ant.Prox = null; ultimo = ant; // aponta quem era penúltimo } else { ant.Prox = atu.Prox; } quantosNos--; // removemos um nó, acertamos a contagem }
public void InserirAntesDoInicio(Dado informacao) { var novoNo = new NoLista <Dado>(informacao, null); if (EstaVazia) { ultimo = novoNo; } else { novoNo.Prox = primeiro; } primeiro = novoNo; quantosNos++; }
public void InserirAposFim(Dado informacao) { NoLista <Dado> novoNo = new NoLista <Dado>(informacao, null); if (EstaVazia) { primeiro = novoNo; } else { ultimo.Prox = novoNo; } ultimo = novoNo; quantosNos++; }
} // se a chave procurada foi ou não encontrado private void InserirNoMeio(Dado dados) { NoLista <Dado> novoNo = new NoLista <Dado>(dados, null); // ExisteDado() encontrou intervalo de inclusão do novo nó anterior.Prox = novoNo; // liga anterior ao novo novoNo.Prox = atual; // e novo no atual if (anterior == ultimo) // se incluiu ao final da lista, { ultimo = novoNo; // atualiza o apontador ultimo } quantosNos++; // incrementa número de nós da lista }
public void Inverter() { NoLista <Dado> um, dois, tres; um = dois = tres = null; if (!EstaVazia) { um = primeiro; dois = primeiro.Prox; while (dois != null) { tres = dois.Prox; dois.Prox = um; um = dois; dois = tres; } ultimo = primeiro; primeiro = um; ultimo.Prox = null; } }
public ListaSimples() { primeiro = null; ultimo = null; quantosNos = 0; }
public NoLista(Dado info, NoLista <Dado> prox) { this.Info = info; this.Prox = prox; }