c++实现栈和队列类
作者:mmseoamin日期:2024-02-28

c++实现栈和队列类

  • 栈(Stack)
    • Stack示意图
    • Stack.cpp
    • 队列(queue)
      • queue 示意图
      • queue.cpp

        栈(Stack)

        Stack示意图

        c++实现栈和队列类,在这里插入图片描述,第1张

        Stack.cpp

        #pragma once
        #include "ListStu.cpp"
        template
        class Stack
        {
        public:
        /* 
        	* void push(T& tDate)
        	* 参数一 : T& 用户数据
        	* 功能   :往链表的头部压入一个数据
        	* 返回值 :无
        */
        	void push(const T& tDate);
        /*
        	* void pop()
        	* 参数一 : 无
        	* 功能   :往链表的头部弹出一个数据,删除头数据
        	* 返回值 :无
        */
        	void pop();
        /*
        	* void GetTopDate()
        	* 参数一 : 无
        	* 功能   :获取栈顶数据
        	* 返回值 :T&
        */
        	T& GetTopDate();
        /*
        	* int GetCount()
        	* 参数一 : 无
        	* 功能   :获取栈的元素个数
        	* 返回值 :int
        */
        	int GetCount();
        private:
        	ListStu m_Stack;//栈双向链表指针
        };
        template
        void Stack::push(const T& tDate)
        {
        	m_Stack.HeadInsert(tDate);
        }
        template
        void Stack::pop()
        {
        	m_Stack.DeleteHead();
        }
        template
        T& Stack::GetTopDate()
        {
        	return *(m_Stack.begin());
        }
        template
        int Stack::GetCount()
        {
        	return m_Stack.Size();
        }
        

        队列(queue)

        queue 示意图

        c++实现栈和队列类,在这里插入图片描述,第2张

        queue.cpp

        #pragma once
        #include "ListStu.cpp"
        template
        class Queue
        {
        public:
        	/*
        	* void push(T& tDate)
        	* 参数一 : T& 用户数据
        	* 功能   :往链表的尾部压入一个数据
        	* 返回值 :无
        */
        	void push(const T& tDate);
        	/*
        		* void pop()
        		* 参数一 : 无
        		* 功能   :往链表的头部弹出一个数据,删除头数据
        		* 返回值 :无
        	*/
        	void pop();
        	/*
        		* void GetTopDate()
        		* 参数一 : 无
        		* 功能   :获取栈顶数据
        		* 返回值 :T&
        	*/
        	T& GetTopDate();
        	/*
        		* int GetCount()
        		* 参数一 : 无
        		* 功能   :获取栈的元素个数
        		* 返回值 :int
        	*/
        	int GetCount();
        private:
        	ListStu m_Queue;//队列双向链表,排队:后进后出原则--push尾部插入,pop 头先出
        };
        template
        void Queue::push(const T& tDate)
        {
        	m_Queue.VailInsert(tDate);
        }
        template
        void Queue::pop()
        {
        	m_Queue.DeleteHead();
        }
        template
        T& Queue::GetTopDate()
        {
        	return *(m_Queue.begin());
        }
        template
        int Queue::GetCount()
        {
        	return m_Queue.Size();
        }