Ejemplo n.º 1
0
        //Hàm xử lý sự kiện nhấn button Pop
        private void btnPop_Click(object sender, EventArgs e)
        {
            //Nếu stack khác rỗng thì tiến hành xóa
            if (!myStack.IsEmptyStack())
            {
                NODE <int> p;
                //Cho biết selectPush = false để khi vào trong hàm thì nó sẽ gọi
                //dòng lệnh xóa
                selectPush = false;
                p          = myStack.Top;
                DrawNode(p);//
                size--;

                //Tọa độ của giảm theo chiều từ trên xuống
                nodeY += 50;
                //Bây giờ mới pop ra theo stack đã xây dựng
                txtPop.Text   = myStack.Pop().ToString();
                txtStack.Text = myStack.PrintStack();
                p             = myStack.Top;
                //
                //Trả lại nut selectPush = true
                selectPush = true;

                //Nếu size > 0 nghĩa là vẫn con node chua xóa, thực hiện
                //xóa ngược lại cập nhật txtHead = NULL
                if (size > 0)
                {
                    DrawNode(p);
                }
                else
                {
                    txtHead.Text = "Top = NULL";
                }
            }
            else
            {
                txtPop.Text = "";
                MessageBox.Show("Stack is empty!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }