Xây dựng lớp Stack


Go down

Xây dựng lớp Stack Empty Xây dựng lớp Stack

Post  Admin Mon Feb 21, 2011 8:00 pm

– Hàm Stack(int n) khởi tạo 1 Stack có tối đa n phần tử
– Phương thức IsEmpty để kiểm tra xem Stack có phần tử nào hay không?
– Phương thức IsFull để kiểm tra xem Stack đầy hay chưa?
– Phương thức Push để thêm một phần tử vào Stack.
– Phương thức Pop để loại một phần tử khỏi Stack.
Xây dựng đối tượng Stack<int> và Stack<String> và thực hiện các phương thức trên.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Baigiaicau2
{
    public class Stack<T>
    {
        private int n;//so phan tu toi da cua stack
        private int top;//danh dau dinh stack
        public T[] a;
        public int Top
        {
            get { return top; }
            set { top = value; }
        }
        public Stack(int n)
        {
            top = -1;
            this.n = n;
            a = new T[n];
        }
        public bool isEmpty()
        {
            return top == -1;
        }
        public bool isFull()
        {
            return top==n-1;
        }
        public void Push(T pt)
        {
            //neu stack chua day thi top++,a[top]=x
            //Neu stack day roi thi bao "stack day"
            if (!isFull())
            {
                top = top + 1;
                a[top] = pt;
            }
            else
            {
                Console.WriteLine("Stack day!");
            }
        }
        public void Pop()
        {
            if (!isEmpty())
            {
                top = top - 1;
            }
            else
            {
                Console.WriteLine("Stack rong");
            }
        }
        public void Hienthi()
        {
            if (!isEmpty())
            {
                for (int i = 0; i <= top; i++)
                    Console.Write("{0}", a[i].ToString());
                Console.WriteLine();
            }
            else
                Console.WriteLine("Stack rong roi");
        }
    }

    public class Test
    {
        static void Main(string[] args)
        {
            Stack<int> st = new Stack<int>(5);
            if (st.isEmpty())
                Console.WriteLine("Stack rong");

            Console.WriteLine("***Thuc hien thao tac***");

            Console.WriteLine("\n");
            Console.WriteLine("//them {0} phan tu",st.a.Length);
            st.Push(3);
            st.Push(4);
            st.Push(5);
            st.Push(6);
            st.Push(7);
            st.Hienthi();
            if (st.isFull())
                Console.WriteLine("Stack da day");

            Console.WriteLine("\n");
            Console.WriteLine("//Xoa 1 phan tu");
            st.Pop();
            st.Hienthi();
            Console.WriteLine("\n");
            //
            Stack<string> st2 = new Stack<string>(3);
            if (st2.isEmpty())
                Console.WriteLine("Stack rong");

            Console.WriteLine("***Thuc hien thao tac***");

            Console.WriteLine("\n");
            Console.WriteLine("//them {0} phan tu", st2.a.Length);
            st2.Push("a");
            st2.Push("b");
            st2.Push("c");

            st2.Hienthi();
            if (st2.isFull())
                Console.WriteLine("Stack da day");

            Console.WriteLine("\n");
            Console.WriteLine("//Xoa 3 phan tu");
            st2.Pop();
            st2.Pop();
            st2.Pop();
            st2.Hienthi();
            Console.WriteLine("\n");
            Console.ReadLine();
        }
    }
}

Xây dựng lớp Stack để mô phỏng một Stack bao gồm:- Hàm Stack(int n) khởi tạo 1 Stack có tối đa n phần tử- Phương thức IsEmpty để kiểm tra xem Stack có phần tử nào hay không?- Phương thức IsFull để kiểm tra xem Stack đầy hay chưa?- Phương thức Push để thêm một phần tử vào Stack.- Phương thức Pop để loại một phần tử khỏi Stack.Xây dựng đối tượng Stack và Stack và thực hiện các phương thức trên.

Admin

Admin

Admin

Tổng số bài gửi

: 782

Join date

: 2009-08-15

https://hackis.forumvi.com

Back to top Go down

Back to top

+

 Similar topics

Jump to:  

Permissions in this forum:

You cannot reply to topics in this forum

Youreply to topics in this forum