C#中的棧和佇列


Stack 類表示物件的先進後出集合。當您需要對專案進行先進後出的訪問時,可以使用它。

以下是 Stack 類的屬性:

  • **Count** - 獲取棧中元素的數量。

以下是 Stack 類的方法:

序號方法和描述
1public virtual void Clear();
移除 Stack 中的所有元素。
2public virtual bool Contains(object obj);
確定某個元素是否在 Stack 中。
3public virtual object Peek();
返回 Stack 頂部的物件,但不將其移除。
4public virtual object Pop();
移除並返回 Stack 頂部的物件。
5public virtual void Push(object obj);
在 Stack 頂部插入一個物件。
6public virtual object[] ToArray();
將 Stack 複製到一個新陣列中。

以下是一個示例,展示瞭如何使用 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

佇列

Queue 集合類是 C# 中的一個概念,包含在 System.Collection 名稱空間中。元素以 FIFO 的方式儲存在 QUEUE 中。第一個新增的元素將是第一個出去的元素,就像電影院外面買票的人群一樣。

它有兩個方法:

  • 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());

更新於: 2020年6月20日

5K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.