How to push an element to a stack in C#
The Stack<T> generic class in the System.Collections.Generic namespace provides the Push() method, which inserts an element to the top of a stack in C#.
Syntax
public void Push (T item);
- This method takes the value
Tas input to be pushed onto theStack<T>. - The value
Tcan benullfor reference types.
Things to Note
-
The
Stack<T>class internally uses an array to store the elements. -
This method is an O(1) operation if the number of elements in the stack is less than its capacity.
-
When we add a new element using
Push(), and the current count of elements in the stack is equal to its capacity, a new array double the size of the initial capacity is allocated. Existing elements are copied over to the new array. After that, the new element is added to the stack. -
When the count of elements is equal to the capacity,
Push()method is an O(n) operation, where n is the count of the elements.
Code
In the following code, we have created a stack of strings.
First, we call the Push() method with the Asia string and then the Africa string. This inserts both strings onto the stack, with Africa at the top of the stack.
We then show all the stack elements, and we can see that it has Africa at the top, followed by Asia.
We again call the Push() method with the Europe string as input, and it inserts Europe at the top of the stack. This stack is a
Later, we again display all elements of the stack and can observe that Europe is at the top of the stack.
The program below shows the output and exits.
Current Stack Items:
Africa, Asia
Pushing 'Europe' to the Stack..
Stack Items:
Europe, Africa, Asia
using System;using System.Collections.Generic;class StackPush{static void Main(){Stack<string> stack = new Stack<string>();stack.Push("Asia");stack.Push("Africa");Console.WriteLine("Current Stack Items: \n{0}\n", string.Join(",", stack.ToArray()));Console.WriteLine("Pushing 'Europe' to the Stack..\n");stack.Push("Europe");Console.WriteLine("Stack Items:\n{0}", string.Join(",", stack.ToArray()));}}