zoukankan      html  css  js  c++  java
  • 225. 用队列实现栈 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 backpeek/pop from frontsize, 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. public class MyStack {
    2. Queue<int> queue;
    3. public MyStack() {
    4. queue = new Queue<int>();
    5. }
    6. public void Push(int x) {
    7. queue.Enqueue(x);
    8. }
    9. public int Pop() {
    10. Queue<int> tempQueue = new Queue<int>();
    11. int count = queue.Count;
    12. for (int i = 0; i < count - 1; i++) {
    13. tempQueue.Enqueue(queue.Dequeue());
    14. }
    15. int top = queue.Dequeue();
    16. queue.Clear();
    17. count = tempQueue.Count();
    18. for (int i = 0; i < count; i++) {
    19. queue.Enqueue(tempQueue.Dequeue());
    20. }
    21. return top;
    22. }
    23. public int Top() {
    24. int[] arr = queue.ToArray();
    25. return arr[queue.Count - 1];
    26. }
    27. public bool Empty() {
    28. return queue.Count == 0;
    29. }
    30. }






  • 相关阅读:
    FFmpeg源码分析:avcodec_find_decoder
    FFmpeg源码分析:解码器流程
    05Linux网络编程基础 ---- 定时器
    04Linux网络编程基础 ---- 信号
    03Linux网络编程基础 ---- IO复用
    SRS流媒体服务器04 ---- st-thread框架
    react-render()
    react开发学习
    php代码运行提速的20个小技巧(转)
    Symfony2 资料篇
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/6493034.html
Copyright © 2011-2022 走看看