#include <iostream> #include <string> #include <stack> #include <queue> #include <algorithm> #define BUG cout << "here\n"; using namespace std; const int N = 105; struct Node { int value; Node* lchild; Node* rchild; }; template<typename T> class CQueue { public : CQueue(void); ~CQueue(void); void appendTail(const T& Node); T deleteHead(); private : stack<T> stack1; stack<T> stack2; }; template<typename T> void CQueue<T>::appendTail(const T& element) { stack1.push(element); } template<typename T> T CQueue<T>::deleteHead() { if(!stack2.empty()) { T tmp = stack2.top(); stack2.pop(); return tmp; } else { if(stack1.empty()) { cout << "异常" << endl; } while(!stack1.empty()) { // 我感觉这么写更快呢! T tmp = stack1.top(); stack1.pop(); stack2.push(tmp); } T tmp = stack2.top(); stack2.pop(); return tmp; } } int main() { return 0; }