public void Retirar(X obj) { if (EstaVazia()) { throw new Exception("A fila está vazia. Não há nada para ser retirado."); } List <X> aux = new List <X>(); int max = lista.GetQtd(); for (int i = 0; i < max; i++) { if (lista.GetPos(i).Equals(obj)) { for (int i2 = i + 1; i2 < lista.GetQtd(); i2++) { aux.Add(lista.GetPos(i2)); } var lista2 = new Lista <X>(); for (int i3 = 0; i3 < aux.Count; i3++) { lista2.InsiraNoFim(aux[i3]); } for (int i4 = 0; i4 < lista.GetQtd(); i4++) { lista.RemovaDoInicio(); } lista = lista2; return; } aux.Add(lista.GetPos(i)); } }
public Lista <X> Inversao() { Lista <X> ret = new Lista <X>(); for (No atual = this.primeiro; atual != null; atual = atual.GetProx()) { ret.primeiro = new No(null, atual.GetInfo(), ret.primeiro); if (ret.primeiro.GetProx() != null) { ret.primeiro.GetProx().SetAnte(ret.primeiro); } ret.primeiro.SetAnte(null); if (ret.ultimo == null) { ret.ultimo = ret.primeiro; } } return(ret); }
public Fila() { lista = new Lista <X>(); }