zoukankan      html  css  js  c++  java
  • 剑指offer:用两个栈实现队列

    题目:用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除结点的功能。队列的声明如下:
    1. template <typename T> class CQueue
    2. {
    3. public:
    4. CQueue(void);
    5. ~CQueue(void);
    6. // 在队列末尾添加一个结点
    7. void appendTail(const T& node);
    8. // 删除队列的头结点
    9. T deleteHead();
    10. private:
    11. stack<T> stack1;
    12. stack<T> stack2;
    13. };


    1. template<typename T> void CQueue<T>::appendTail(const T& element)
    2. {
    3. stack1.push(element);
    4. }
    5. template<typename T> T CQueue<T>::deleteHead()
    6. {
    7. if(stack2.size()<= 0)
    8. {
    9. while(stack1.size()>0)
    10. {
    11. T& data = stack1.top();
    12. stack1.pop();
    13. stack2.push(data);
    14. }
    15. }
    16. if(stack2.size() == 0)
    17. throw new exception("queue is empty");
    18. T head = stack2.top();
    19. stack2.pop();
    20. return head;
    21. }








  • 相关阅读:
    JAVA日报
    JAVA日报
    论文爬取(七)
    论文爬取(六)
    论文爬取(五)
    JAVA日报
    JAVA日报
    剑指 Offer 68
    剑指 Offer 68
    剑指 Offer 67. 把字符串转换成整数
  • 原文地址:https://www.cnblogs.com/zhuzhenfeng/p/4663604.html
Copyright © 2011-2022 走看看