public void InvertaSe() { if (this.primeiro == null) { return; } if (this.primeiro.GetProx() == null) { return; } No backup, atual = this.primeiro; while (atual != null) { backup = atual.GetProx(); atual.SetProx(atual.GetAnte()); atual.SetAnte(backup); atual = backup; } backup = this.primeiro; this.primeiro = this.ultimo; this.ultimo = backup; }
public void Remova(X i) { if (i == null) { throw new Exception("Informacao ausente"); } if (this.primeiro == null) { throw new Exception("Lista vazia"); } if (i.Equals(this.primeiro.GetInfo())) { this.primeiro = this.primeiro.GetProx(); if (this.primeiro == null) { this.ultimo = null; } else { this.primeiro.SetAnte(null); } return; } No atual = this.primeiro; for (;;) { if (atual == null) { throw new Exception("Informacao inexistente"); } if (i.Equals(atual.GetInfo())) { if (atual == this.primeiro) { this.primeiro = this.primeiro.GetProx(); if (this.primeiro == null) { this.ultimo = null; } else { this.primeiro.SetAnte(null); } return; } if (atual == this.ultimo) { this.ultimo = this.ultimo.GetAnte(); if (this.ultimo == null) { this.primeiro = null; } else { this.ultimo.SetProx(null); } return; } atual.GetAnte().SetProx(atual.GetProx()); atual.GetProx().SetAnte(atual.GetAnte()); return; } atual = atual.GetProx(); } }