C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのスタックとキュー


スタック

スタッククラスは、後入れ先出しのオブジェクトのコレクションを表します。アイテムへの後入れ先出しアクセスが必要な場合に使用されます。

以下はStackクラスのプロパティです-

  • カウント −スタック内の要素の数を取得します。

以下はStackクラスのメソッドです-

メソッドと説明
Sr.No。
1 public virtual void Clear();
スタックからすべての要素を削除します。
2 public virtual bool contains(object obj);
要素がスタックにあるかどうかを判別します。
3 パブリック仮想オブジェクトPeek();
スタックの一番上にあるオブジェクトを削除せずに返します。
4 パブリック仮想オブジェクトPop();
スタックの最上位にあるオブジェクトを削除して返します。
5 public virtual void Push(object obj);
スタックの一番上にオブジェクトを挿入します。
6 public virtual object [] ToArray();
スタックを新しい配列にコピーします。

以下は、StackクラスとそのPush()およびPop()メソッドの操作方法を示す例です-

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         Stack st = new Stack();

         st.Push('A');
         st.Push('B');
         st.Push('C');
         st.Push('D');

         Console.WriteLine("Current stack: ");
         foreach (char c in st) {
            Console.Write(c + " ");
         }

         Console.WriteLine();

         st.Push('P');
         st.Push('Q');
         Console.WriteLine("The next poppable value in stack: {0}", st.Peek());
         Console.WriteLine("Current stack: ");

         foreach (char c in st) {
            Console.Write(c + " ");
         }
         Console.WriteLine();

         Console.WriteLine("Removing values....");
         st.Pop();
         st.Pop();
         st.Pop();

         Console.WriteLine("Current stack: ");
         foreach (char c in st) {
            Console.Write(c + " ");
         }
      }
   }
}

出力

Current stack:
D C B A
The next poppable value in stack: Q
Current stack:
Q P D C B A
Removing values....
Current stack:
C B A

キュー

キューコレクションクラスは、System.Collection名前空間に含まれているC#の概念です。要素はFIFOのQUEUEに格納されます。追加された最初の要素は、映画館の外にいる人々の列のようにチケットを購入するために最初に出かけるものです。

2つの方法があります-

  • 値を追加するEnqueue()メソッド
  • 値を取得するためのDequeue()メソッド

エンキュー

キューにアイテムを追加します。

Queue q = new Queue();
q.Enqueue(“Two”);
q.Enqueue(“One”);

デキュー

キューからアイテムを返します。

Queue q = new Queue();
q.Enqueue(“Two”);
q.Enqueue(“One”);

// remove elements
while (q.Count > 0)
Console.WriteLine(q.Dequeue());

  1. 解決済み:印刷キューWindows10および11を削除できない

    プリンタが機能しないというエラーはユーザーの間でよく見られますが、ドキュメントがWindows10またはWindows11の印刷キューから削除されないという問題もあります。 コンテンツ: 印刷キューの概要を削除できません: 印刷ジョブがキューに詰まるのはなぜですか? Windows 10を修正する4つの方法で印刷キューがクリアされませんか? 印刷キューの概要を削除できません: Windows10またはWindows11では、いつでもスタックした印刷ジョブが発生する可能性があります。最も一般的なものは次のとおりです。 1.ドキュメントを印刷した後も、印刷キューに表示され、W

  2. スタックとヒープの違い

    この投稿では、スタックとヒープの違いを理解します スタック これは線形データ構造です。 メモリは連続した(連続した)ブロックに割り当てられます。 スタックのメモリは、コンパイラの指示を使用して自動的に割り当ておよび割り当て解除されます。 スタックの構築と維持にかかる費用は少なくて済みます。 実装は簡単です。 サイズは固定されています。したがって、柔軟性はありません。 その唯一の欠点は、サイズが固定されているため、メモリが不足していることです。 すべてのブロックが占有されていない場合、メモリも無駄になります。 スタックの要素にアクセスするのに