• 用两个栈实现队列


    【题目描述】

    用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
    【解题思路】

    思路其实很简单,如下所示:

    1、所谓的“一次性倒完”可以通过一直往Stackpop中push元素,直到StackPush栈大小为空时为止来实现。
    2、如果StackPop中有数据,则直接弹出栈顶元素并返回即可;
          如果StackPop中没有数据,则依次弹出SatckPush中的元素,将其压入StackPop中,直到StackPush栈大小为空。
          最后返回弹出的元素即可。
     
    【代码实现】
     1 class Solution
     2 {
     3 public:
     4     void push(int node) {
     5         stack1.push(node);
     6     }
     7 
     8     int pop() {
     9        int element=0;
    10        if(stack2.empty())// 如果StackPop中没有数据
    11        {
    12           while(!stack1.empty())
    13           {
    14               element=stack1.top();
    15               stack1.pop();
    16               stack2.push(element);
    17           }
    18        }
    19        if(!stack2.empty())//如果StackPop中有数据
    20        {
    21            element=stack2.top();
    22            stack2.pop();
    23        }
    24         return element;
    25     }
    26 
    27 private:
    28     stack<int> stack1;
    29     stack<int> stack2;
    30 };
  • 相关阅读:
    忘记IBM服务器的登录IP
    分层思想
    防火墙的发展历史
    存储相关
    HCIE_交换篇_ARP欺骗
    堡垒机与网闸
    防止ARP欺骗
    信息安全等级保护
    DPM如何创建存储池?
    Lync2013的会话
  • 原文地址:https://www.cnblogs.com/lou424/p/5023854.html
Copyright © 2020-2023  润新知