C# のデータ構造とアルゴリズムにおけるキューの簡単な分析

C# のデータ構造とアルゴリズムにおけるキューの簡単な分析

C# のデータ構造とアルゴリズムのキューは、リストの先頭での削除操作とリストの末尾での挿入操作のみを許可する特殊な線形リストです。挿入が実行される側はキューの末尾と呼ばれ、削除が実行される側はキューの先頭と呼ばれます。これはよく先入先出法(FIFO)と呼ばれます。中国では昔からこの順番ルールが使われてきました。例えば、穀倉管理官がこのルールを習得する前は、倉庫の一番下の穀物は保管期間が長すぎるため腐ってしまいます。その後、賢い人が穀倉の両側のドアを開け、食料が同時に倉庫に出入りできるようにしました。これにより、管理がはるかに便利になりました。キューに要素がない場合、そのキューは空のキューと呼ばれます。

C# データ構造とアルゴリズムのキューによって実装されるインターフェイスは次のとおりです。

  1. 公共 インターフェースIQueen﹤T﹥
  2. {
  3.     さ();
  4.     ブール型IsEmpty();
  5.     ブールIsFull();
  6.      voidクリア();
  7.      void IN(T アイテム);
  8. T アウト();
  9. T フロントアイテムを取得します。
  10. }

C# データ構造とアルゴリズムのキュー実装の原理とコードは次のとおりです。

  1. 公共 クラスJQueen﹤T﹥ : IQueen﹤T﹥
  2. {
  3.     プライベート 整数サイズ;
  4.     プライベートT[]アイテム;
  5.     プライベート  int前面;
  6.     プライベート  int戻る;
  7.  
  8.     パブリックJQueen()
  9. :これ(100)
  10. {
  11. サイズ = 100;
  12. アイテム =新しいT[100];
  13. 前 = 後ろ = -1;
  14. }
  15.  
  16.     パブリックJQueen( int長さ)
  17. {
  18. サイズ = 長さ;
  19. アイテム =新しいT[長さ];
  20. 前 = 後ろ = -1;
  21. }
  22.  
  23.     パブリックT this [ intインデックス]
  24. {
  25.          get { return item[index]; }
  26.         設定{ 項目[インデックス] = 値; }
  27. }
  28.  
  29.     公共  intフロント
  30. {
  31.         取得{戻り値: front; }
  32.         設定{ front = 値; }
  33. }
  34.  
  35.     公共  int戻る
  36. {
  37.         取得{戻る; }
  38.         設定{ 戻る = 値; }
  39. }
  40.  
  41.     公共 最大
  42. {
  43.         取得{サイズを返す; }
  44.         設定{ サイズ = 値; }
  45. }
  46.  
  47.     公共 整数長さ()
  48. {
  49.          return (back - front + size) % size;
  50. }
  51.  
  52.     公共 ブール型IsEmpty()
  53. {
  54.         戻り値(前 == 後);
  55. }
  56.  
  57.     公共 ブールIsFull()
  58. {
  59.         戻り値((back + 1) % size == front);
  60. }
  61.  
  62.     公共  voidクリア()
  63. {
  64. 前 = 後ろ = -1;
  65. }
  66.  
  67.     公共  void IN(T アイテム)
  68. {
  69.          (IsFull()の場合
  70. {
  71.             投げる 新しいArgumentOutOfRangeException( "RangeException"
  72.   "クイーン範囲例外: クイーンがいっぱいです" );
  73. }
  74. item[++back] = アイテム;
  75. }
  76.  
  77.     パブリックT Out()
  78. {
  79. T tmp =デフォルト(T);
  80.         空の場合()
  81. {
  82.             投げる 新しいArgumentOutOfRangeException( "RangeException"
  83. "クイーン範囲例外: クイーンが空です" );
  84. }
  85. tmp = アイテム[++前面];
  86.          tmpを返します
  87. }
  88.  
  89.     パブリックT GetFrontItem()
  90. {
  91.         空の場合()
  92. {
  93.             投げる 新しいArgumentOutOfRangeException( "RangeException"
  94. "クイーン範囲例外: クイーンが空です" );
  95. }
  96.         アイテム[先頭 + 1]を返します
  97. }
  98.  
  99. }

キュー テスト キュー コードの C# データ構造とアルゴリズム:

  1. 公共 クラスプログラム
  2. {
  3.     静的  void Main(文字列[]引数)
  4. {
  5.         試す 
  6. {
  7. JQueen﹤文字列﹥ JQ = new JQueen﹤文字列﹥();
  8. Console.WriteLine(JQ.IsEmpty()); //空ですか?  
  9. Console.WriteLine(JQ.IsFull()); // キューはいっぱいですか?  
  10. Console.WriteLine(JQ.MaxLength); // 初期化時のキューの長さ 
  11. Console.WriteLine(JQ.Length()); //キュー要素の長さ 
  12. Console.WriteLine(JQ.Front); // チームヘッドの位置 
  13. Console.WriteLine(JQ.Back); // チーム末尾の位置 
  14. JQ.IN( "A" ); //要素を挿入 
  15. JQ.IN( "B" );
  16. JQ.IN( "C" );
  17. JQ.IN( "D" );
  18. Console.WriteLine(JQ.GetFrontItem()); // チーム ヘッド要素 
  19. Console.WriteLine( "------要素がキューから削除された後の先頭要素-------" );
  20. JQ.Out(); //出力A  
  21. JQ.Out();
  22. Console.WriteLine(JQ.GetFrontItem()); // 2つの要素をキューから取り出した後、キューの先頭要素 
  23. コンソールの行を読み取ります。
  24. }
  25.          catch (例外例)
  26. {
  27. Console.WriteLine(ex.Message); //例外 
  28. コンソールの行を読み取ります。
  29. }
  30. }
  31. }

C# データ構造とアルゴリズムのキュー プログラムを実行した結果は次のとおりです。

これで、C# のデータ構造とアルゴリズム - キューの紹介は終わりです。C# のデータ構造とアルゴリズム - キューの紹介を通じて、C# のデータ構造とアルゴリズムについて理解を深めていただければ幸いです。

<<:  C# データ構造とアルゴリズム スタックの簡単な分析

>>:  C# のデータ構造とアルゴリズムにおける線形リストの構築クラスの簡単な分析

ブログ    
ブログ    
ブログ    

推薦する

EUが新たなAI規制を導入

欧州委員会は、ヨーロッパを信頼できる人工知能(AI)の世界的な中心にすることを目指して、2021年4...

レポート:中国の人工知能都市ランキングで北京が1位に

[[431347]]中国新聞社、北京10月26日(記者 夏斌)「2021年人工知能コンピューティング...

AIミドルプラットフォーム - インテリジェントチャットボットプラットフォームのアーキテクチャとアプリケーション

講演者紹介:王東:北京大学大学院 CreditEase テクノロジーセンター AI ミドルプラットフ...

Google、Facebook、Baiduはディープラーニングのフレームワークをめぐって競争している

[[226860]]タイトル画像提供:Visual China最近、海外の多くの企業で興味深い変化が...

...

わずか1行のコードでモデルを数秒でAPIに変換でき、TensorFlowなどのフレームワークをサポートしています。

[[283641]]機械学習モデルを API にパッケージ化することにまだ不安がありますか?このツ...

人工知能について知っておくべき4つのこと!

1950 年代以来、コンピューター科学者は人間の知能を模倣するプログラムの開発に取り組んできました...

AIがFX市場に、私たちが気づかないうちに革命を起こしている

外国為替市場または外国為替市場は世界最大の金融市場です。それは株式市場よりもさらに大きいです。さらに...

...

グレートウルフホテルはAIを活用してゲストの体験とレビューを理解する

現在、ホテルやエンターテインメント業界のチェーンは、ゲストの体験やレビューをスキャンして理解するため...

...