public void RemovaDoFim() { if (GetQtd() == 0) { throw new Exception("Nada a remover"); } if (GetQtd() == 1) { primeiro = null; ultimo = null; qtd--; return; } NoLista <Dado> aux = primeiro; while (aux != null) { if (aux.Prox.Equals(ultimo)) { aux.Prox = null; ultimo = aux; qtd--; break; } else { aux = aux.Prox; } } }
private void ExibirUmCaminho(PilhaLista <Movimento> umCaminho) { NoLista <Movimento> aux = umCaminho.Inicio; while (aux != null) { dgvLabirinto[aux.Info.Coluna, aux.Info.Linha].Style.BackColor = Color.Green; dgvLabirinto.CurrentCell = dgvLabirinto[aux.Info.Coluna, aux.Info.Linha]; dgvLabirinto.Refresh(); Thread.Sleep(800); aux = aux.Prox; } }
private void ExibirCaminhos() { dgvCaminhos.RowCount = caminhos.GetQtd(); dgvCaminhos.ColumnCount = 1; NoLista <PilhaLista <Movimento> > umCaminho = caminhos.Inicio; int i = 0; while (umCaminho != null) { dgvCaminhos[0, i].Value = umCaminho.Info.ToString(); umCaminho = umCaminho.Prox; i++; } PrepararCaminhos(); }
private PilhaLista <Movimento> ObterUmCaminho(int indiceCaminho) { NoLista <PilhaLista <Movimento> > aux = caminhos.Inicio; labClone.ExibirLabirinto(dgvLabirinto); for (int i = 0; i < caminhos.GetQtd(); i++) { if (i == indiceCaminho) { return(aux.Info); } else { aux = aux.Prox; } } return(null); }
public void InsiraNoFim(Dado dado) { if (dado == null) { throw new Exception("Dado ausente"); } if (GetQtd() == 0) { primeiro = new NoLista <Dado>(dado, primeiro); ultimo = primeiro; qtd++; return; } else { NoLista <Dado> aux = new NoLista <Dado>(dado, null); ultimo.Prox = aux; ultimo = aux; qtd++; return; } }
public NoLista(Dado dado, NoLista <Dado> prox) { Info = dado; Prox = prox; }