zoukankan      html  css  js  c++  java
  • 【算法题目】用两个栈实现一个队列

    相关题目:《剑指offer》面试题7

    template<T>
    class Queue {
     public:
         Queue();
         ~Queue();
         
         void Push(const T& value) {
             s1.push(value):
         }
    
         void Pop() {
             if (s2.empty()) {
                 while (!s1.empty()) {
                     s2.push(s1.top());
                     s1.pop();
                 }
             }
    
             s2.pop();
         }
    
     private:
         stack<T> s1;
         stack<T> s2;
    }

    用两个队列实现一个栈:

    template<typename T>
    clsss Stack {
     public:
         Stack();
         ~Stack();
    
         void Push(const T& value) {
             q1.push(value);
         }
    
         void Pop() {
             if (s2.empty()) {
                 while (!s1.empty()) {
                     s2.push(s1.front());
                     s1.pop();
                 }
             }
    
             return s2.top();
         }
    
         T& Top() {
             return s2.front();
         }
         
     private:
         queue<T> q1;
         queue<T> q2;
    }
  • 相关阅读:
    iptraf查看TCP/UDP某个特定端口的带宽与流量
    linux read 命令
    2 css常识二
    1 css常识
    18 表单
    17 事件
    16 DOM
    15 BOM
    14 函数-高级
    13 对象
  • 原文地址:https://www.cnblogs.com/vincently/p/4775775.html
Copyright © 2011-2022 走看看