private void butExibirPilha_Click(object sender, EventArgs e) { Pilha _pilha = ((Pilha)cboPilhas.SelectedItem); Container _topo = _pilha.getTopo(); string[] _relatorio = new string[3]; int i = 0; while (_topo != null) { _relatorio[i] = "Container " + _topo.getCodigo(); _topo = _topo.getProx(); i++; } rtxtboxExibir.Lines = _relatorio; }
private void butInserir_Click(object sender, EventArgs e) { bool espacoLivre = false; bool codigoLivre = true; string _codigo = txtboxCodigoPush.Text; // variaveis para obter menor pilha Pilha menor_pilha = pilhas[0]; int menor_tamanho = menor_pilha.getNum_container(); // percorrer pilhas for (int i = 0; i < 4; i++) { // obter menor pilha if (pilhas[i].getNum_container() < menor_tamanho) { menor_tamanho = pilhas[i].getNum_container(); menor_pilha = pilhas[i]; } // procurar por codigo repetido Container _topo = pilhas[i].getTopo(); while (_topo != null) { if (_topo.getCodigo() == _codigo) { codigoLivre = false; } _topo = _topo.getProx(); } } // erro de codigo repetido if (!codigoLivre) { MessageBox.Show("Código invalido!"); return; } // empilhando na menor pilha if (menor_tamanho < 3) { menor_pilha.push(_codigo); espacoLivre = true; } // erro de falta de espaço nas pilhas if (!espacoLivre) { MessageBox.Show("Impossível empilhar!"); } }