终于弄懂了c++中两个栈实现一个队列!
当然了,代码还有一些不足之处,会进一步改进的,加油!
/**********************************************
* [author] hmtian
* [abstract] Use two stacks to realize queue.
* [time] 2020/8/18 23:13
*********************************************/
#include<iostream>
#include<stack>
using namespace std;
template<typename T>
class TwoStackQueue
{
public:
TwoStackQueue() {};
~TwoStackQueue() {};
void empty()
{
return save.empty() && get.empty();
}
void push(const T& node)
{
save.push(node);
}
T pop()
{
if (get.empty())
{
while (!save.empty())
{
get.push(save.top());
save.pop();
}
}
get.pop();
}
T front()
{
if (get.empty())
{
while (!save.empty())
{
get.push(save.top())
save.pop();
}
}
get.front();
}
public:
stack<int> save; //data structure used to save element.
stack<int> get; //data structure used to get element.
};