Home »
.Net »
C# Programs
C# program to implement Double Stack using class
Here, we are going to learn how to implement Double Stack using class in C#?
Submitted by Nidhi, on November 05, 2020 [Last updated : March 27, 2023]
Double Stack Using Class
Here, we will implement a double-stack using class; we can implement two stacks inside a single array using class.
Double Stack Implementation Using Class in C#
The source code to implement a Double Stack using class is given below. The given program is compiled and executed successfully on Microsoft Visual Studio.
//C# program to implement Double Stack using class.
using System;
//Declaration of Double Stack
class DoubleStack
{
int top1;
int top2;
int MAX;
int []ele;
//Initialization of Double Stack
public DoubleStack(int size)
{
ele = new int[size];
top1 = -1;
top2 = size;
MAX = size;
}
//Push Operation on Stack1
public void PushStack1(int item )
{
if( top2 == top1 + 1 )
{
Console.WriteLine("Stack Overflow Stack1");
return;
}
top1++;
ele[top1] = item;
Console.WriteLine("Inserted item in Stack1 : {0}",item);
}
//Push Operation on Stack2
public void PushStack2(int item)
{
if( top2 == top1 + 1 )
{
Console.WriteLine("Stack Overflow Stack2");
return;
}
top2--;
ele[top2] = item;
Console.WriteLine("Inserted item in Stack2 : {0}",item);
}
//Pop Operation on Stack1
public void PopStack1()
{
int item=0;
if(top1 == -1 )
{
Console.WriteLine("Stack Underflow Stack1");
return;
}
item = ele[top1--];
Console.WriteLine("Poped Item: "+item);
}
//Pop Operation on Stack2
public void PopStack2()
{
int item=0;
if( top2 == MAX )
{
Console.WriteLine("Stack Underflow Stack2");
return;
}
item = ele[top2++];
Console.WriteLine("Poped Item: "+item);
}
}
class Demo
{
static void Main(string[] args)
{
DoubleStack S=new DoubleStack(5);
S.PushStack1(10);
S.PushStack1(20);
S.PushStack1(30);
S.PushStack2(40);
S.PushStack2(50);
S.PushStack2(60);
S.PopStack1();
S.PopStack1();
S.PopStack1();
S.PopStack2();
S.PopStack2();
S.PopStack2();
Console.WriteLine();
}
}
Output
Inserted item in Stack1 : 10
Inserted item in Stack1 : 20
Inserted item in Stack1 : 30
Inserted item in Stack2 : 40
Inserted item in Stack2 : 50
Stack Overflow Stack2
Poped Item: 30
Poped Item: 20
Poped Item: 10
Poped Item: 50
Poped Item: 40
Stack Underflow Stack2
Press any key to continue . . .
Explanation
In the above program, we created a class DoubleStack that contain three data members array of elements, "top1", "top2", and "MAX".
The Stack class contains PushStack1(), PushStack2(), PopStack1() and PopStack2 methods.
The PushStack1() method is used to insert the item into stack1 from the start of the array. The PushStack2() method is used to insert the item into stack2 from the end of the array.
The PopStack1() method is used to remove an element from the stack1. The PopStack2() method is used to remove an element from the stack2.
Now look to the Demo class, the Demo class that contains the Main() method. The Main() method is the entry point for the program. Here, we created the reference of DoubleStack class and perform Push and Pop operations on the double stack.
C# Data Structure Programs »