Stack and Queue in C#


Stack

Stack class represents a last-in, first out collection of object. It is used when you need a last-in, first-out access of items.

The following is the property of Stack class −

  • Count− Gets the number of elements in the stack.

The following are the methods of Stack class −

Sr.No.Method & Description
1public virtual void Clear();
Removes all elements from the Stack.
2public virtual bool Contains(object obj);
Determines whether an element is in the Stack.
3public virtual object Peek();
Returns the object at the top of the Stack without removing it.
4public virtual object Pop();
Removes and returns the object at the top of the Stack.
5public virtual void Push(object obj);
Inserts an object at the top of the Stack.
6public virtual object[] ToArray();
Copies the Stack to a new array.

The following is an example showing how to work with Stack class and its Push() and Pop() method −

Example

 Live Demo

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 + " ");
         }
      }
   }
}

Output

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

Queue collection class is a concept in C# that is included in the System.Collection namespace. The elements are stored in a QUEUE in FIFO. The first element added will be the first to go out like a queue of people outside a movie hall to buy tickets.

It has two methods −

  • Enqueue() method to add values
  • Dequeue() method to retrieve values

Enqueue

Add items in the queue.

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

Dequeue

Return items from the queue.

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

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

Updated on: 20-Jun-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements