次に、アレイモードキュー

実装のアイデア:

1)フロント= -1はキューヘッドの前の位置を指し、リア= -1はキューの最後を指し、maxSizeはキューの最大容量を初期化します

2)リア<maxSize-1は、キューがまだいっぱいでないことを示している場合、キューの最後にリア++を追加し続けることができます。

3)フロント==リアの場合、キューは空です

C#実装コード:

システムの使用;

名前空間のデータ構造
{
    パブリック クラスArrayQueue
    {
        static  void Main(string [] args)
        {
            // キューを初期化します
            var queue = new ArrayQueue(5 );
             試す
            {
                queue.GetQueue();
            }
            キャッチ
            {
                Console.WriteLine(" キューはまだ空です... \ n " );
            }
            Console.WriteLine(" 开始入队... \ n " );
            forint i = 1 ; i <= 6 ; i ++ 
            {
                queue.AddQueue(i);
            }
            Console.WriteLine(" \ n开始出队... \ n " );
            forint i = 1 ; i < 6 ; i ++ 
            {
                Console.WriteLine(queue.GetQueue());
            }
            試す
            {
                queue.GetQueue();
            }
            キャッチ
            {
                Console.WriteLine(" すべてはチームの外にいます... " );
            }
        }

        #region配列モードキュー
         プライベート int maxSize; // キューの最大         
        プライベート intフロント; // キューヘッド
        プライベート intリア; // キューエンド
        プライベート int [] arrayQueue; // シミュレーションキューアレイ
         // 初期化キュー
        パブリック ArrayQueue(int maxSize = 1 
        {
            this .maxSize = maxSize;
             this .arrayQueue = new  int [maxSize];
             this .front = -1 ; // キューヘッドの前の位置を指す
            this .rear = -1 ; // キューの最後、キューの最後の位置を指す
        }

        // キューがいっぱいかどうかを確認します
        public  bool IsFull()
        {
            return == maxSize- 1 ;
        }
        パブリック ブールIsEmpty()
        {
            フロントを返す == リア;
        }

        // 入队
        public  bool AddQueue(int item)
        {
            // (IsFull())の場合、キューはいっぱい
            です
            {
                Console.WriteLine(" キューがいっぱいです... " );
                 falseを返し ます
            }
            リア ++ ;
            arrayQueue [リア] = アイテム;
            trueを返し ます
        }

        // 出队
        public  int GetQueue()
        {
            // (IsEmpty())の場合、キューは空
            です
            {
                スロー 新しい新しい IndexOutOfRangeExceptionザ・(キューが空であります... );
            }
            フロント ++ ;
            arrayQueue [front]を返します。
        }
        #endregion
    }
}

おすすめ

転載: www.cnblogs.com/xiaojvhuang/p/12677479.html