예제 #1
0
        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;
        }
예제 #2
0
        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!");
            }
        }