c++实现栈和队列类
栈(Stack)
Stack示意图

Stack.cpp
#pragma once
#include "ListStu.cpp"
template<typename T>
class Stack
{
public:
void push(const T& tDate);
void pop();
T& GetTopDate();
int GetCount();
private:
ListStu<T> m_Stack;
};
template<typename T>
void Stack<T>::push(const T& tDate)
{
m_Stack.HeadInsert(tDate);
}
template<typename T>
void Stack<T>::pop()
{
m_Stack.DeleteHead();
}
template<typename T>
T& Stack<T>::GetTopDate()
{
return *(m_Stack.begin());
}
template<typename T>
int Stack<T>::GetCount()
{
return m_Stack.Size();
}
队列(queue)
queue 示意图

queue.cpp
#pragma once
#include "ListStu.cpp"
template<typename T>
class Queue
{
public:
void push(const T& tDate);
void pop();
T& GetTopDate();
int GetCount();
private:
ListStu<T> m_Queue;
};
template<typename T>
void Queue<T>::push(const T& tDate)
{
m_Queue.VailInsert(tDate);
}
template<typename T>
void Queue<T>::pop()
{
m_Queue.DeleteHead();
}
template<typename T>
T& Queue<T>::GetTopDate()
{
return *(m_Queue.begin());
}
template<typename T>
int Queue<T>::GetCount()
{
return m_Queue.Size();
}