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

C++?Queue隊(duì)列類模版實(shí)例詳解

 更新時(shí)間:2022年02月25日 16:37:44   作者:諾謙  
這篇文章主要為大家詳細(xì)介紹C++?Queue隊(duì)列類模版實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

1.隊(duì)列的介紹

隊(duì)列的定義

  • 隊(duì)列(Queue)是一種線性存儲(chǔ)結(jié)構(gòu)。它有以下幾個(gè)特點(diǎn):
  • 按照"先進(jìn)先出(FIFO, First-In-First-Out)"方式進(jìn)出隊(duì)列。
  • 隊(duì)列只允許在"隊(duì)首"進(jìn)行取出操作(出隊(duì)列),在"隊(duì)尾"進(jìn)行插入操作(入隊(duì)列 )

隊(duì)列實(shí)現(xiàn)的方式有兩種

  • 基于動(dòng)態(tài)數(shù)組實(shí)現(xiàn)
  • 基于鏈表形式實(shí)現(xiàn)

隊(duì)列需要實(shí)現(xiàn)的函數(shù)

  • T dequeue() : 出隊(duì)列,并返回取出的元素
  • void enqueue(const T &t) : 入隊(duì)列
  • T &head() : 獲取隊(duì)首數(shù)據(jù),但是不會(huì)被取出
  • const T &head() const : 獲取const類型隊(duì)首數(shù)據(jù)
  • int length() const: 獲取數(shù)量(父類已經(jīng)實(shí)現(xiàn))
  • void clear(): 清空隊(duì)列(父類已經(jīng)實(shí)現(xiàn))

2.代碼實(shí)現(xiàn)

本章,我們實(shí)現(xiàn)的隊(duì)列基于鏈表形式實(shí)現(xiàn),它的父類是我們之前實(shí)現(xiàn)的LinkedList類:

C++ 雙向循環(huán)鏈表類模版實(shí)例詳解

所以Queue.h代碼如下:

#ifndef QUEUE_H
#define QUEUE_H
#include "throw.h"
// throw.h里面定義了一個(gè)ThrowException拋異常的宏,如下所示:
//#include <iostream>
//using namespace std;
//#define ThrowException(errMsg)  {cout<<__FILE__<<" LINE"<<__LINE__<<": "<<errMsg<<endl; (throw errMsg);}
#include "LinkedList.h"
template < typename T>
class Queue : public LinkedList<T>
{
public:
    inline void enqueue(const T &t) { LinkedList<T>::append(t); }
    inline T dequeue()
    {
        if(LinkedList<T>::isEmpty()) {        // 如果棧為空,則拋異常
            ThrowException("Stack is empty ...");
        }
        T t = LinkedList<T>::get(0);
        LinkedList<T>::remove(0);
        return t;
    }
    inline T &head()
    {
        if(LinkedList<T>::isEmpty()) {        // 如果棧為空,則拋異常
            ThrowException("Stack is empty ...");
        }
        return LinkedList<T>::get(0);
    }
    inline const T &head() const
    {
        if(LinkedList<T>::isEmpty()) {        // 如果棧為空,則拋異常
            ThrowException("Stack is empty ...");
        }
        return LinkedList<T>::get(0);
    }
};
#endif // QUEUE_H

3.測(cè)試運(yùn)行

int main(int argc, char *argv[])
{
    Queue<int> queue;
    cout<<"******* current length:"<<queue.length()<<endl;
    for(int i = 0; i < 5; i++) {
        cout<<"queue.enqueue:"<<i<<endl;
        queue.enqueue(i);
    }
    cout<<"******* current length:"<<queue.length()<<endl;
    while(!queue.isEmpty()) {
        cout<<"queue.dequeue:"<<queue.dequeue()<<endl;
    }
    return 0;
}

運(yùn)行打印:

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!   

相關(guān)文章

  • C++編譯期循環(huán)獲取變量類型詳情

    C++編譯期循環(huán)獲取變量類型詳情

    這篇文章主要介紹了C++編譯期循環(huán)獲取變量類型詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-09-09
  • C++實(shí)現(xiàn)單鏈表按k值重新排序的方法

    C++實(shí)現(xiàn)單鏈表按k值重新排序的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)單鏈表按k值重新排序的方法,結(jié)合實(shí)例形式分析了C++單鏈表中按照給定值進(jìn)行判斷與排序的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C++編程中的數(shù)據(jù)類型和常量學(xué)習(xí)教程

    C++編程中的數(shù)據(jù)類型和常量學(xué)習(xí)教程

    這篇文章主要介紹了C++編程中的數(shù)據(jù)類型和常量學(xué)習(xí)教程,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 詳解C語(yǔ)言中的memset()函數(shù)

    詳解C語(yǔ)言中的memset()函數(shù)

    這篇文章主要介紹了C語(yǔ)言中的memset()函數(shù),包括其與memcpy()函數(shù)的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • 深入分析C語(yǔ)言中結(jié)構(gòu)體指針的定義與引用詳解

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

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

    C++中sprintf()函數(shù)的使用詳解

    本篇文章是對(duì)C++中sprintf()函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語(yǔ)言攝氏度互相轉(zhuǎn)換華氏

    C語(yǔ)言攝氏度互相轉(zhuǎn)換華氏

    這篇文章主要介紹了C語(yǔ)言攝氏度互相轉(zhuǎn)換華氏,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C++設(shè)計(jì)模式之備忘錄模式

    C++設(shè)計(jì)模式之備忘錄模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之備忘錄模式,本文講解了什么是備忘錄模式、備忘錄模式的UML類圖、備忘錄模式的使用場(chǎng)合等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Visual Studio安裝的圖文教程

    Visual Studio安裝的圖文教程

    這篇文章主要介紹了Visual Studio安裝的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語(yǔ)言main()函數(shù)的參數(shù)問(wèn)題詳解

    C語(yǔ)言main()函數(shù)的參數(shù)問(wèn)題詳解

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言main()函數(shù)的參數(shù)問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論