国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

數據結構用兩個棧實現一個隊列的實例

2020-01-26 14:04:00
字體:
來源:轉載
供稿:網友

數據結構用兩個棧實現一個隊列的實例

棧是先進后出,隊列是先進先出

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

這里寫圖片描述

#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) //分兩次驗證  {    cout << sq.Pop() << " ";  }  cout << endl;  system("pause");  return 0;}

這里寫圖片描述

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 长乐市| 绿春县| 略阳县| 额敏县| 安陆市| 濮阳市| 阿勒泰市| 仁化县| 龙南县| 东平县| 东乌珠穆沁旗| 南郑县| 巍山| 黄山市| 钟山县| 历史| 隆德县| 库伦旗| 武冈市| 浑源县| 伊通| 呼伦贝尔市| 石屏县| 涿鹿县| 韶关市| 夏邑县| 大埔县| 罗江县| 东乡| 镶黄旗| 白水县| 宜兰县| 南投市| 防城港市| 雅安市| 岳池县| 梁平县| 江华| 铅山县| 兴义市| 韶山市|