zoukankan      html  css  js  c++  java
  • 【校招面试 之 剑指offer】第9-2题 用两个队列实现一个栈

    #include<iostream>
    #include<queue>
    using namespace std;
    // 对于出栈解决的思路是:将queue1的元素除了最后一个外全部放到queue2中,然后再pop出queue1的最后一个元素...
    template<typename T>
    void popStack(queue<T> &queue1, queue<T> &queue2){
    	if(queue1.size() == 0)
    		return;
    	// 将queue1中的元素除了最后一个元素外,依次入队queue2中
    	while(queue1.size() - 1){
    		queue2.push(queue1.front());
    		queue1.pop();
    	}
    	cout<<"出队元素为:"<<queue1.front()<<endl;
    	queue1.pop();
    	// 将queue2的元素放回到queue1中
    	while(queue2.size()){
    		queue1.push(queue2.front());
    		queue2.pop();
    	}
    }
    
    template<typename T>
    void printStack(queue<T> &queue1){
    	while(!queue1.empty()){
    		cout<<queue1.front()<<" ";
    		queue1.pop();
    	}
    }
    
    int main(){
    	
    	queue<int> queue1;
    	queue<int> queue2;
    
    	// 1.实现入栈操作
    	queue1.push(100);
    	queue1.push(200);
    	queue1.push(300);
    
    	// 2.实现出栈操作
    	popStack(queue1, queue2);
    
    	queue1.push(400);
    	queue1.push(500);
    
    	popStack(queue1, queue2);
    
    	printStack(queue1);
    
    	system("pause");
    	return 0;
    }
    

    运行结果:

  • 相关阅读:
    VS自带的dbghelp.h文件 报错
    Windows 自带的截屏功能
    CentOS 7 安装
    Windows 远程连接 CentOS 7 图形化桌面
    <<、|=、&的小例子
    pip 安装库过慢
    pip -i 和 -U 参数
    windows下安装TA-Lib库
    vector、map 判断某元素是否存在、查找指定元素
    vector push_back报错
  • 原文地址:https://www.cnblogs.com/xuelisheng/p/9357317.html
Copyright © 2011-2022 走看看