用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

題目

用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列。隊(duì)列的聲明如下,請(qǐng)實(shí)現(xiàn)它的兩個(gè)函數(shù) appendTail 和 deleteHead,分別完成在隊(duì)列尾部插入節(jié)點(diǎn)和在隊(duì)列頭部刪除節(jié)點(diǎn)的功能。

template<typename T> class Queue
{
public:
        CQueue(void);
        ~CQueue(void);
        void appendTail(const T& node);
        T deleteHead();
private:
        stack<T> stack1;
        stack<T> stack2;
}

解法

template<typename T> void CQueue<T>::appendTail(const T& element)
{
      stack1.push(element);
}
template<typename T> T CQueue<T>::deleteHead()
{
      if(stack2.size() <= 0)
      {
            while(stack1.size()>0)
            {
                  T& data = stack1.top();
                  stack1.pop();
                  stack2.push(data);
            }
      }
      if(stack2.size() == 0)
           throw new exception("queue is empty");
      T head = stack2.top();
      stack2.pop();
      return head;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容