自定义队列Queue

来源:互联网 发布:网络双向是什么意思 编辑:程序博客网 时间:2024/06/05 19:05
using System;public class MyQueue<T>{    T[] arr;    int count = 0;    int copacity = 0;    public MyQueue()    {        arr = new T[count];    }    public MyQueue(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 Enqueue(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 Dequeue()    {        try        {            T name = arr[0];            T[] arrT = new T[count - 1];            for (int i = 0; i < count - 1; i++)            {                arrT[i] = arr[i + 1];            }            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++)        {            Dequeue();        }    }    //返回队头数据    public T Peek()    {        try        {            return arr[0];        }        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;    }}


原创粉丝点击