C#——实现泛型顺序队列和链式队列

顺序队列,使用List为存储器

 /// 顺序队列
    class MyQueue<T>
    {
        List<T> list;
        public MyQueue()
        {
            list = new List<T>();
        }
        //入队
        public void  EnQueue(T item)
        {
            list.Add(item);
        }
        //出队
        public void DeQueue()
        {
            if(list.Count>0)
                list.RemoveAt(0);
        }
    }

链队列,以结点相连的单链表(只能队首删除,队尾插入)

   class LinkQueue<T>
    {
        private LinkNode<T> rear;
        private LinkNode<T> front;
        private int nodeCount;
        public LinkQueue()
        {
            rear = null;
            front = null;
            nodeCount = 0;
        }
        //入队
        public void Enqueue(T value)
        {
            LinkNode<T> p = new LinkNode<T>(value);
            if ((rear == null)&&(front==null))
            {
                front = p;
                rear = p;
            }
            else
            {
                front.Next = p;
                front = front.Next;
            }
            nodeCount++;         
        }
        //出队
        public void Dequeue()
        {
            if (front != null)
            {
                rear = rear.Next;
                nodeCount--;
            }           
        }
        public void ShowAllItem()
        {
            LinkNode<T> p = rear;
            while (p!=null)
            {
                Console.WriteLine(p.Data);
                p = p.Next;
            }
            Console.WriteLine("----------------");
        }
        public int Count
        {
            get { return nodeCount; }
        }
    }

猜你喜欢

转载自blog.csdn.net/noEnoughChief/article/details/82693975