自定义栈Stack<T>

来源:互联网 发布:孔子学院的数据 编辑:程序博客网 时间:2024/05/21 17:10
using System;public class MyStack<T>{    T[] arr;    int count=0;    int copacity = 0;    public MyStack()    {                arr = new T[count];    }    public MyStack(int a)    {        if (a > count)        {            arr = new T[a];            copacity = a;        }        else        {            arr = new T[count];            copacity = count;        }    }    public int Count    {        get { return this.count; }    }    //添加数据    public void Push(T name)    {        T[] arrT = arr;        if (count == copacity)        {            arr = new T[count + 1];            for (int i = 0; i < count; i++)            {                arr[i] = arrT[i];            }            arr[count] = name;        }        else if (count < copacity)        {            arr[count] = name;        }        else        {            arr = new T[count + 1];            for (int i = 0; i < count; i++)            {                arr[i] = arrT[i];            }            arr[count] = name;        }        count++;    }    //出栈    public T Pop()    {        try        {            T name = arr[count-1];            arr[count - 1] = default(T);            T[] arrT = arr;            count--;            if (count > copacity)            {                arr = new T[count];                for (int i = 0; i < count; i++)                {                    arr[i] = arrT[i];                }            }            return name;        }        catch        {            throw new Exception("没有数据,不能取钱");        }    }    //移除所有数据    public void Clear()    {        int j = count;        for (int i = 0; i < j; i++)        {            Pop();        }    }    //返回栈顶数据    public T Peek()    {        try        {            return arr[count - 1];        }        catch        {            throw new Exception("小子你钱包空了,不用再看了");        }    }    //确定某元素是否在stack中    public bool Contains(T name)    {        for (int i = 0; i < count; i++)        {            if (arr[i].Equals(name))            {                return true;            }        }        return false;    }}


原创粉丝点击