最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)循環(huán)順序隊(duì)列

 更新時(shí)間:2017年01月12日 08:36:46   投稿:lqh  
這篇文章主要介紹了 C++數(shù)據(jù)結(jié)構(gòu)之實(shí)現(xiàn)循環(huán)順序隊(duì)列的相關(guān)資料,需要的朋友可以參考下

數(shù)據(jù)結(jié)構(gòu)–用C++實(shí)現(xiàn)循環(huán)順序隊(duì)列

  • 隊(duì)列的操作特性:先進(jìn)先出
  • 隊(duì)列中元素具有相同類(lèi)型
  • 相鄰元素具有前驅(qū)和后繼關(guān)系
  • 設(shè)置隊(duì)頭、隊(duì)尾兩個(gè)指針,以改進(jìn)出隊(duì)的時(shí)間性能

約定:隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置,隊(duì)尾指針rear指向隊(duì)尾元素

為了解決假溢出,我們將存儲(chǔ)隊(duì)列的數(shù)組頭尾相接,從而產(chǎn)生了循環(huán)隊(duì)列。

如何判斷循環(huán)隊(duì)列隊(duì)空?

隊(duì)空:front=rear

如何盤(pán)對(duì)循環(huán)隊(duì)列堆滿?

隊(duì)滿:front=rear

那么問(wèn)題就來(lái)了,隊(duì)空和隊(duì)滿的判斷條件相同,為了避免隊(duì)滿時(shí)產(chǎn)生隊(duì)空的判斷或者相反,我們需要修改隊(duì)滿條件使得隊(duì)空和堆滿的判定條件分開(kāi)。
方法:浪費(fèi)一個(gè)元素空間,隊(duì)滿時(shí)數(shù)組只有一個(gè)空閑單元。隊(duì)滿條件:(rear+1)%QueueSize==front

下面是實(shí)現(xiàn)代碼:

文件CirQueue.h

#ifndef CirQueue_byNim
#define CirQueue_byNim

#include<iostream>
using namespace std;

const int QueueSize=100;  //循環(huán)隊(duì)列的最大存儲(chǔ)空間 
template <class T>
class CirQueue
{
  private:
    T *data;  //存儲(chǔ)數(shù)據(jù)的數(shù)組 
    int front,rear; //隊(duì)頭隊(duì)尾指針 
  public:
    CirQueue()
    {
      data=new T[QueueSize];
      front=rear=0;
    }
    ~CirQueue()
    {
      delete []data;
      front=rear=0;
    }
    void EnQueue(T e)
    {
      if((rear+1)%QueueSize==front)  //隊(duì)滿條件 
        throw "上溢";
      rear=(rear+1)%QueueSize;
      data[rear]=e;
    }
    T DeQueue()
    {
      if(rear==front)//隊(duì)空條件 
        throw "下溢";
      front=(front+1)%QueueSize;
      return data[front];
    }
    T GetQueue()
    {
      if(rear==front)//隊(duì)空條件 
        throw "下溢";
      return data[(front+1)%QueueSize];
    }
    bool empty()
    {
      if(front==rear) //隊(duì)空條件:front==rear 
        return true;
      return false;
    }
};

#endif

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

相關(guān)文章

  • C++17中的折疊表達(dá)式實(shí)現(xiàn)

    C++17中的折疊表達(dá)式實(shí)現(xiàn)

    這篇文章主要介紹了C++17中的折疊表達(dá)式實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Linux系統(tǒng)下C語(yǔ)言中的標(biāo)準(zhǔn)IO總結(jié)

    Linux系統(tǒng)下C語(yǔ)言中的標(biāo)準(zhǔn)IO總結(jié)

    最近用到了C語(yǔ)言的標(biāo)準(zhǔn)IO庫(kù),由于對(duì)其中的一些細(xì)節(jié)不是非常清楚,導(dǎo)致了許多Bug,花了好長(zhǎng)時(shí)間來(lái)調(diào)試,所以在此做個(gè)筆記,這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)下C語(yǔ)言中標(biāo)準(zhǔn)IO的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • C++實(shí)現(xiàn)分水嶺算法(Watershed Algorithm)

    C++實(shí)現(xiàn)分水嶺算法(Watershed Algorithm)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)分水嶺算法Watershed Algorithm,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一 下
    2018-01-01
  • c語(yǔ)言string.h頭文件中所有函數(shù)示例詳解

    c語(yǔ)言string.h頭文件中所有函數(shù)示例詳解

    這篇文章詳細(xì)介紹了C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的字符串和內(nèi)存操作函數(shù),以str開(kāi)頭的字符串處理函數(shù)和以mem開(kāi)頭的內(nèi)存處理函數(shù),每種函數(shù)都有詳細(xì)的原型、功能描述和示例代碼,需要的朋友可以參考下
    2024-11-11
  • VC++ 6.0 C語(yǔ)言實(shí)現(xiàn)俄羅斯方塊詳細(xì)教程

    VC++ 6.0 C語(yǔ)言實(shí)現(xiàn)俄羅斯方塊詳細(xì)教程

    這篇文章主要為大家介紹了VC++ 6.0 C語(yǔ)言實(shí)現(xiàn)俄羅斯方塊詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C語(yǔ)言求解定積分的方法

    C語(yǔ)言求解定積分的方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言求解定積分的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C/C++程序編譯流程詳解

    C/C++程序編譯流程詳解

    C/C++程序編譯過(guò)程包括下面4個(gè)階段:1.預(yù)處理,2.編譯,3.匯編,4.鏈接。下面我們就來(lái)詳細(xì)分析下這幾個(gè)階段。
    2016-04-04
  • 使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能

    使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能

    信號(hào)與槽機(jī)制是 Qt 框架中的核心設(shè)計(jì),用于實(shí)現(xiàn)對(duì)象之間的解耦通信,在純 C++ 中,我們也可以設(shè)計(jì)出類(lèi)似的機(jī)制,利用模板、函數(shù)指針和哈希表,實(shí)現(xiàn)高效且靈活的信號(hào)與槽功能,本文給大家介紹了如何使用C++實(shí)現(xiàn)類(lèi)似Qt的信號(hào)與槽機(jī)制功能,需要的朋友可以參考下
    2025-01-01
  • C++小知識(shí):C/C++中不要按值傳遞數(shù)組

    C++小知識(shí):C/C++中不要按值傳遞數(shù)組

    今天小編就為大家分享一篇關(guān)于C++小知識(shí):C/C++中不要按值傳遞數(shù)組,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C++面試八股文之了解auto關(guān)鍵字

    C++面試八股文之了解auto關(guān)鍵字

    這篇文章主要為大家介紹了C++面試八股文之了解auto關(guān)鍵字問(wèn)題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論

法库县| 新安县| 织金县| 仪征市| 鄄城县| 北辰区| 洛川县| 文昌市| 青阳县| 广河县| 新营市| 石狮市| 长顺县| 大余县| 尼木县| 图片| 炎陵县| 普兰店市| 当雄县| 太仆寺旗| 饶平县| 宝山区| 陕西省| 北辰区| 顺昌县| 青神县| 翼城县| 河津市| 太湖县| 瓦房店市| 长宁区| 靖江市| 苏尼特左旗| 开平市| 义马市| 嘉鱼县| 农安县| 昌吉市| 雷州市| 友谊县| 柞水县|