91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#隊列如何使用

發布時間:2022-03-17 17:17:10 來源:億速云 閱讀:143 作者:iii 欄目:開發技術

本篇內容介紹了“C#隊列如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

隊列的特性很簡答,就是先進先出,一般利用數組來實現。

實現隊列自然要實現幾個函數:入隊,出隊,判斷隊滿,判斷隊空,獲得隊頭,隊尾。

實現隊列的關鍵在于隊頭指針和隊尾指針的設置:

  • 假設初始狀態下,隊頭指針為0,隊尾指針為-1,那么兩個指針指的位置分別就是隊頭與隊尾。當隊尾的下一個是隊頭時隊空,當隊尾的下下個是隊頭時隊滿。

  • 假設初始狀態下,隊頭隊尾指針都為0,那么隊尾指針指的是隊尾,而隊頭指針的下一個位置才是隊頭。當兩指針相等時隊空,當隊尾指針的下一個是隊頭時隊滿。

如果我們畫個圖就會發現,不管怎么設置指針,隊滿時數組一定還有一個空位。所以數組長度應該比隊列長度多1。

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

C#隊列如何使用

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#也有一個隊列庫,如下圖所示

C#隊列如何使用

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

   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);
       }
}

“C#隊列如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵台县| 密云县| 阿拉善左旗| 康乐县| 隆德县| 高陵县| 唐河县| 桐城市| 绥德县| 奉新县| 杭锦后旗| 沙雅县| 利川市| 阳东县| 九台市| 潢川县| 康马县| 建昌县| 金坛市| 南召县| 鱼台县| 丰原市| 页游| 稷山县| 宣武区| 东乡族自治县| 宁德市| 泰和县| 浦江县| 桃园县| 鄂州市| 枣强县| 三穗县| 丹阳市| 贵德县| 浏阳市| 吐鲁番市| 昭通市| 苏州市| 志丹县| 静乐县|