亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

武穴市| 卢湾区| 文昌市| 铜鼓县| 高平市| 黎城县| 武义县| 浪卡子县| 商丘市| 胶南市| 双牌县| 叶城县| 定州市| 西和县| 兴义市| 宜川县| 江阴市| 连云港市| 房山区| 永昌县| 河曲县| 峡江县| 石棉县| 尼勒克县| 镇赉县| 勐海县| 永平县| 炉霍县| 南通市| 咸丰县| 商丘市| 沅陵县| 彩票| 鄂托克前旗| 佳木斯市| 平武县| 清远市| 东海县| 神池县| 会泽县| 修水县|