C#中的堆栈和队列

堆栈

堆栈类表示对象的后进先出集合。当您需要对项目进行后进先出的访问时使用。

以下是Stack类的属性-

  • Count-获取堆栈中元素的数量。

以下是Stack类的方法-

序号方法与说明
1

public virtual void Clear();

从堆栈中删除所有元素。

2

public virtual bool Contains(object obj);

确定元素是否在堆栈中。

3

public virtual object Peek();

返回堆栈顶部的对象,但不删除它。

4

public virtual object 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

队列

队列集合类是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”);

//删除元素
while (q.Count > 0)
Console.WriteLine(q.Dequeue());