zoukankan      html  css  js  c++  java
  • leetcode Implement Stack using Queues

    Implement the following operations of a stack using queues.

    • push(x) -- Push element x onto stack.
    • pop() -- Removes the element on top of the stack.
    • top() -- Get the top element.
    • empty() -- Return whether the stack is empty.

    Notes:

      • You must use only standard operations of a queue -- which means only push to back, peek/pop from front, size, and is empty operations are valid.
      • Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
      • You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack)

    很简单一道题,如果用栈实现队列有点难度,还需要两个栈。用队列实现栈的话还是比较简单的,用一个队列就可以完成了。

     1 class Stack {
     2 public:
     3     queue<int> Queue1;
     4     int* back,*tmp;
     5     // Push element x onto stack.
     6     void push(int x) {
     7         Queue1.push(x);
     8         
     9         
    10     }
    11 
    12     // Removes the element on top of the stack.
    13     void pop() {
    14         back=&Queue1.back();
    15         while(&Queue1.front()!=back){
    16             tmp=&Queue1.front();
    17             Queue1.pop();
    18             Queue1.push(*tmp);
    19         }
    20         Queue1.pop();
    21     }
    22 
    23     // Get the top element.
    24     int top() {
    25         return Queue1.back();
    26     }
    27 
    28     // Return whether the stack is empty.
    29     bool empty() {
    30         return Queue1.empty();
    31         
    32     }
    33 };
  • 相关阅读:
    初试kafka消息队列中间件一 (只适合初学者哈)
    3月22日 html(三)css样式表
    3月20日html(二) 图片热点,网页划分,表单
    3月19日 html(一) html基础内容
    3月18日 全部练习题(一)
    3月18日 全部练习题(二)
    3月15日
    3月13日 函数
    3月13日 冒泡排序
    3月12日 数组
  • 原文地址:https://www.cnblogs.com/LUO77/p/5022405.html
Copyright © 2011-2022 走看看