亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

數(shù)據(jù)結(jié)構(gòu)用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的實(shí)例

 更新時(shí)間:2017年06月22日 09:21:56   投稿:lqh  
這篇文章主要介紹了C++語(yǔ)言數(shù)據(jù)結(jié)構(gòu)用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的實(shí)例的相關(guān)資料,需要的朋友可以參考下

數(shù)據(jù)結(jié)構(gòu)用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的實(shí)例

棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出

每次元素都push在st1中,pop的時(shí)候如果st2為空,將st1的棧頂元素放在st2的棧底,這樣st1的所有元素都放在st2中,st1的棧底就是st2的棧頂,pop st2的棧頂,這樣就滿足了隊(duì)列的先進(jìn)先出。

這里寫圖片描述

#include <iostream>
using namespace std;
#include <stack>
#include <stdlib.h>

template <class T>
class SQueue {
public:
  void Push(const T& value);
  T Pop();
private:
  stack<T> st1;
  stack<T> st2;
};

template <class T>
T SQueue<T>::Pop()
{
  if (st2.size() <= 0)
  {
    if (st1.size() == 0)
    {
      exit(1);
    }
    while ((st1.size() > 0))
    {
      T& top = st1.top();
      st2.push(top);
      st1.pop();
    }
  }

  T head = st2.top();
  st2.pop();
  return head;

}

template <class T>
void SQueue<T>::Push(const T& value)
{
  st1.push(value);
}

int main()
{
  SQueue<int> sq;
  for (int i = 0; i < 10; ++i)
  {
    sq.Push(i);
  }
  for (int i = 0; i < 5; ++i) 
  {
    cout << sq.Pop() << " ";
  }

  for (int i = 0; i < 5; ++i) //分兩次驗(yàn)證
  {
    cout << sq.Pop() << " ";
  }
  cout << endl;

  system("pause");
  return 0;
}

這里寫圖片描述

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C語(yǔ)言中的強(qiáng)符號(hào)和弱符號(hào)介紹

    C語(yǔ)言中的強(qiáng)符號(hào)和弱符號(hào)介紹

    這篇文章主要介紹了C語(yǔ)言中的強(qiáng)符號(hào)和弱符號(hào)介紹,本文用多個(gè)實(shí)例來講解強(qiáng)符號(hào)和弱符號(hào),需要的朋友可以參考下
    2015-03-03
  • C語(yǔ)言鏈表實(shí)現(xiàn)貪吃蛇游戲

    C語(yǔ)言鏈表實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)貪吃蛇游戲源碼,適合C語(yǔ)言入門者學(xué)習(xí)閱讀,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解C++11中的lambda匿名函數(shù)

    詳解C++11中的lambda匿名函數(shù)

    匿名函數(shù),簡(jiǎn)單地理解就是沒有名稱的函數(shù),又常被稱為 lambda 函數(shù)或者 lambda 表達(dá)式,這篇文章主要介紹了C++11中的lambda匿名函數(shù),需要的朋友可以參考下
    2022-11-11
  • C++實(shí)現(xiàn)郵件群發(fā)的方法

    C++實(shí)現(xiàn)郵件群發(fā)的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)郵件群發(fā)的方法,較為詳細(xì)的分析了郵件發(fā)送的原理與C++相關(guān)實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 利用C語(yǔ)言繪制一個(gè)正方體

    利用C語(yǔ)言繪制一個(gè)正方體

    這篇文章主要為大家詳細(xì)介紹了如何利用C語(yǔ)言繪制一個(gè)正方體,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)和借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-01-01
  • C語(yǔ)言實(shí)現(xiàn)職工工資管理系統(tǒng)的示例代碼

    C語(yǔ)言實(shí)現(xiàn)職工工資管理系統(tǒng)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言如何實(shí)現(xiàn)職工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++內(nèi)存管理詳解使用方式

    C++內(nèi)存管理詳解使用方式

    內(nèi)存管理是C++最令人切齒痛恨的問題,也是C++最有爭(zhēng)議的問題,C++高手從中獲得了更好的性能更大的自由,C++菜鳥的收獲則是一遍—遍的檢查代碼和對(duì)C++的痛恨,但內(nèi)存管理在C++中無處不在,內(nèi)存泄漏幾乎在每個(gè)C++程序中都會(huì)發(fā)生,要想成為C++高手,內(nèi)存管理這關(guān)是必須過的
    2022-04-04
  • C語(yǔ)言運(yùn)用函數(shù)的遞歸實(shí)現(xiàn)漢諾塔

    C語(yǔ)言運(yùn)用函數(shù)的遞歸實(shí)現(xiàn)漢諾塔

    遞歸(recursive)函數(shù)是“自己調(diào)用自己”的函數(shù),無論是采用直接或間接調(diào)用方式。間接遞歸意味著函數(shù)調(diào)用另一個(gè)函數(shù)(然后可能又調(diào)用第三個(gè)函數(shù)等),最后又調(diào)用第一個(gè)函數(shù)。因?yàn)楹瘮?shù)不可以一直不停地調(diào)用自己,所以遞歸函數(shù)一定具備結(jié)束條件
    2022-07-07
  • 深入分析C語(yǔ)言中結(jié)構(gòu)體指針的定義與引用詳解

    深入分析C語(yǔ)言中結(jié)構(gòu)體指針的定義與引用詳解

    本篇文章是對(duì)C語(yǔ)言中結(jié)構(gòu)體指針的定義與引用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中auto_ptr智能指針的用法詳解

    C++中auto_ptr智能指針的用法詳解

    這篇文章主要介紹了C++中auto_ptr智能指針的用法詳解的相關(guān)資料,需要的朋友可以參考下
    2016-07-07

最新評(píng)論