【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列

#include
#include
using namespace std;

template 
void pushQueue(stack &stack1, T t){
	stack1.push(t);
}

template
T  popQueue(stack &stack1, stack &stack2){
	// 先将stack1倒到stack2中
	while(!stack1.empty()){
		stack2.push(stack1.top());
		stack1.pop();
	}

	// 然后取出stack2中的栈顶元素
	T targetNum = stack2.top();
	stack2.pop();

	// 将stack2中的元素倒回到stack1中(为了下次再做操作(入队或者出对只对stack1操作))
	while(!stack2.empty()){
		stack1.push(stack2.top());
		stack2.pop();
	}
	return targetNum;
}

// 输出
template 
void printStack1(stack &stack1){
	while(!stack1.empty()){
		cout< stack1;
	stack stack2;
	// 1.入队操作
	pushQueue(stack1, 100);
	pushQueue(stack1, 200);

	//2.出队操作
	cout<

【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列_第1张图片

 

转载于:https://www.cnblogs.com/xuelisheng/p/9356962.html

你可能感兴趣的:(面试)