【数据结构】数组队列

队列的实现还是依托于一开始所写的数组
【数据结构】二次封装自己的数组(一)完成数组基本功能
【数据结构】二次封装自己的数组(二)升级为泛型数组
【数据结构】二次封装自己的数组(三)升级为动态数组
下面是队列的实现代码

实现

    class ArrayQueue<E> : Queue<E>
    {
        private Array<E> array;
        public ArrayQueue(int capacity)
        {
            array = new Array<E>(capacity);
        }
        public ArrayQueue()
        {
            array = new DataStructure.Array<E>(); 
        }
        public E dequeue()
        {
            return array.removeFirst();
        }

        public void enqueue(E e)
        {
            array.addLast(e);
        }

        public E getFront()
        {
            return array.getFirst();
        }

        public int getSize()
        {
            return array.getSize();
        }

        public bool isEmpty()
        {
            return array.isEmpty();
        }
        public int getCapacity()
        {
            return array.getCapacity();
        }
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("Queue:");
            sb.Append("front [");
            for(int i = 0; i < array.getSize(); i++)
            {
                sb.Append(array.get(i));
                if (i != array.getSize() - 1)
                    sb.Append(", ");
            }
            sb.Append("] tail");
            return sb.ToString();
        }
    }

下面我们写个测试类测试下

测试

 static void Main(string[] args)
        {
            ArrayQueue<int> queue = new DataStructure.ArrayQueue<int>();
            for(int i = 0; i < 10; i++)
            {
                queue.enqueue(i);
                Console.WriteLine(queue);
                if (i % 3 == 2)
                {
                    queue.dequeue();
                    Console.WriteLine(queue);
                }
            }
           
            Console.ReadKey();
        }

结果

在这里插入图片描述
我们可以看到测试结果,完成了队列的功能

猜你喜欢

转载自blog.csdn.net/Maybe_ch/article/details/83511395
今日推荐