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

C#隊列的簡單使用

 更新時間:2022年03月17日 15:36:29   作者:ZEKEGU1997  
隊列的特性很簡答,就是先進先出,一般利用數(shù)組來實現(xiàn),本文就介紹了C#隊列的簡單使用,文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下

隊列的特性很簡答,就是先進先出,一般利用數(shù)組來實現(xiàn)。

實現(xiàn)隊列自然要實現(xiàn)幾個函數(shù):入隊,出隊,判斷隊滿,判斷隊空,獲得隊頭,隊尾。

實現(xiàn)隊列的關(guān)鍵在于隊頭指針和隊尾指針的設(shè)置:

  • 假設(shè)初始狀態(tài)下,隊頭指針為0,隊尾指針為-1,那么兩個指針指的位置分別就是隊頭與隊尾。當(dāng)隊尾的下一個是隊頭時隊空,當(dāng)隊尾的下下個是隊頭時隊滿。
  • 假設(shè)初始狀態(tài)下,隊頭隊尾指針都為0,那么隊尾指針指的是隊尾,而隊頭指針的下一個位置才是隊頭。當(dāng)兩指針相等時隊空,當(dāng)隊尾指針的下一個是隊頭時隊滿。

如果我們畫個圖就會發(fā)現(xiàn),不管怎么設(shè)置指針,隊滿時數(shù)組一定還有一個空位。所以數(shù)組長度應(yīng)該比隊列長度多1。

同時為了方便,我們會把隊列指針設(shè)置為循環(huán)的,即每次移動后取余數(shù)組的長度。

public class MyCircularQueue {
    private int front;
    private int rear;
    private int[] queue;
 
    public MyCircularQueue(int k) {
        queue=new int[k+1];
        front=0;
        rear=-1;
    }
    
    public bool EnQueue(int value) {
        if((rear+2)%queue.Length==front)
        return false;
        rear++;rear=rear%queue.Length;
        queue[rear]=value;
        return true;
    }
    
    public bool DeQueue() {
        if((rear+1)%queue.Length==front)
        return false;
        front++;front=front%queue.Length;
        return true;
    }
    
    public int Front() {
        if(!IsEmpty())
        return queue[front];
        else
        return -1;
    }
    
    public int Rear() {
        if(!IsEmpty())
        return queue[rear];
        else
        return -1;
    }
    
    public bool IsEmpty() {
        if((rear+1)%queue.Length==front)
        return true;
        else
        return false;
    }
    
    public bool IsFull() {
        if((rear+2)%queue.Length==front)
        return true;
        else
        return false;
    }
}

實際上C#也有一個隊列庫,如下圖所示

 需要注意的是Dequeque和ToArray的返回類型都是object,可能需要進行強制轉(zhuǎn)換

   class Program
   {
      static void Main(string[] args)
      {
         Queue q = new Queue();
 
         q.Enqueue('A');
         char ch = (char)q.Dequeue();
         Console.WriteLine("The removed value: {0}", ch);
       }
}

到此這篇關(guān)于C#隊列的簡單使用的文章就介紹到這了,更多相關(guān)C#隊列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#條件拼接Expression<Func<T, bool>>的使用

    C#條件拼接Expression<Func<T, bool>>的使用

    本文主要介紹了C#條件拼接Expression<Func<T, bool>>的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Unity?UGUI的Dropdown下拉菜單組件使用詳解

    Unity?UGUI的Dropdown下拉菜單組件使用詳解

    這篇文章主要為大家介紹了Unity?UGUI的Dropdown下拉菜單組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • C#中神器類BlockingCollection的實現(xiàn)詳解

    C#中神器類BlockingCollection的實現(xiàn)詳解

    如果你想玩轉(zhuǎn)C#?里面多線程,工廠模式,生產(chǎn)者/消費者,隊列等高級操作,就可以和我一起探索這個強大的線程安全提供阻塞和限制功能的C#神器類BlockingCollection吧
    2023-02-02
  • C# 基于消息發(fā)布訂閱模型的示例(下)

    C# 基于消息發(fā)布訂閱模型的示例(下)

    這篇文章主要介紹了C# 基于消息發(fā)布訂閱模型的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#讀寫INI文件的方法

    C#讀寫INI文件的方法

    這篇文章主要介紹了C#讀寫INI文件的方法,涉及C#讀寫ini文件的相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • c#動態(tài)加載卸載DLL的方法

    c#動態(tài)加載卸載DLL的方法

    這篇文章介紹了c#動態(tài)加載卸載DLL的方法,有需要的朋友可以參考一下
    2013-11-11
  • C#數(shù)字圖像處理之圖像二值化(彩色變黑白)的方法

    C#數(shù)字圖像處理之圖像二值化(彩色變黑白)的方法

    這篇文章主要介紹了C#數(shù)字圖像處理之圖像二值化(彩色變黑白)的方法,可實現(xiàn)圖像從彩色轉(zhuǎn)變?yōu)楹诎椎男Ч?非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#實現(xiàn)冒泡排序和插入排序算法

    C#實現(xiàn)冒泡排序和插入排序算法

    這篇文章介紹了C#實現(xiàn)冒泡排序和插入排序算法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#飛行棋小程序設(shè)計分析

    C#飛行棋小程序設(shè)計分析

    這篇文章主要為大家設(shè)計分析了C#飛行棋小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Json操作庫DynamicJson使用指南

    Json操作庫DynamicJson使用指南

    本文給大家分享的是專門為.NET程序員開發(fā)的Json操作庫DynamicJson,其源碼非常簡單,僅僅只有400行代碼,一個對應(yīng)的class類,目前只支持.NET 4.0以上的.NET Framework。
    2016-09-09

最新評論

栖霞市| 揭西县| 白水县| 桃源县| 冕宁县| 碌曲县| 甘南县| 华容县| 公主岭市| 天全县| 天水市| 长丰县| 长沙县| 巴里| 丰镇市| 襄城县| 自贡市| 崇信县| 扶沟县| 广灵县| 鄂托克旗| 东光县| 伊春市| 平原县| 绥化市| 广平县| 广汉市| 富川| 左权县| 蒙山县| 淮滨县| 南岸区| 鄄城县| 呼和浩特市| 涿州市| 富阳市| 延边| 湖北省| 施甸县| 高碑店市| 区。|