Пример #1
0
        public T Pop()
        {
            T x = Top.Info;

            Top = Top.Next;
            return(x);
        }
Пример #2
0
        public void Push(T x)
        {
            NODE <T> p = new NODE <T>(x);

            p.Next = Top;
            Top    = p;
        }
Пример #3
0
        public string PrintStack()
        {
            string kq = "";

            for (NODE <T> p = this.Top; p != null; p = p.Next)
            {
                kq += p.Info.ToString() + " ";
            }
            return(kq);
        }
Пример #4
0
 public NODE(T x)
 {
     Info  = x;
     Next  = null;
     label = new Label
     {
         Size      = new Size(94, 18),
         AutoSize  = true,
         Font      = new Font("Times new roman", 14f, FontStyle.Bold),
         BackColor = Color.White,
         Text      = x.ToString(),
     };
 }
Пример #5
0
        //Hàm vẽ một node
        private void DrawNode(NODE <int> node)
        {
            Brush br;

            //Nếu buttonPush được chọn sẽ vẽ màu của node và các đường
            if (selectPush)
            {
                pen = new Pen(Color.Red, 3);
                br  = new SolidBrush(Color.Black);
            }
            //Ngược lại cũng vẽ mà vẽ màu trắng để minh họa xóa các đường
            else
            {
                pen = new Pen(Color.White, 4);
                br  = new SolidBrush(Color.White);
            }
            //Vẽ hình vuông biểu diễn 1 ô của node
            node.rectangle = new Rectangle(new Point(nodeX, nodeY), new Size(100, 25));
            g.DrawRectangle(pen, node.rectangle);
            //
            //Nếu selectPush = true , nghĩa là ta đang muốn thực hiện vẽ 1 node
            if (selectPush)
            {
                node.label.Location = new Point(nodeX + 2, nodeY + 2);
                pnlCanvas.Controls.Add(node.label);
                //Tiến hành vẽ mô phỏng animation
                DrawPointer();
            }
            //Ngược lại xóa thông tin node và đường
            else
            {
                node.label.Dispose();
                node.label = null;
                pnlCanvas.Controls.Remove(node.label);
                //
                //Tiến hành xóa các đường đi
                g.DrawLine(pen, nodeX + 50, nodeY + 25, nodeX + 50, nodeY + 49);
                //Cập nhật là vị trí của node top
                UpdateTop();
            }
            br.Dispose();
        }
Пример #6
0
 //Constructor
 public NODE()
 {
     Next = null;
 }
Пример #7
0
 //Constructor
 public STACK()
 {
     Top = null;
 }