#include<iostream.h>
#include<stdio.h>
#include<process.h>
class STACK
{
int ST[50];
int top;
public:
STACK()
{
top=-1;
}
void Push();
void Pop();
void Display();
};
void STACK::Push()
{
if(top==49)
cout<<"Stack is Full\n";
else
{
cout<<"Enter Element to push on to the stack\n";
cin>>ST[++top];
}
}
void STACK::Pop()
{
if(top==-1)
cout<<"Empty Stack. Nothing is there to pop\n";
else
cout<<ST[top--]<<" deleted\n";
}
void STACK::Display()
{
int t = top;
if(t==-1)
cout<<"Empty Stack\n";
else
{
while(t>=0)
{
cout<<ST[t--]<<"-->";
}
cout<<"\bEND\n";
}
}
void main()
{
int choice;
STACK S;
do
{
cout<<"Enter Your Choice\n1. Push\n2. Pop\n3. Display\n4. Exit\n";
cin>>choice;
switch(choice)
{
case 1: S.Push();
break;
case 2: S.Pop();
break;
case 3: S.Display();
break;
case 4: exit(0);
default:cout<<"Wrong Choice. Try Again\n";
}
}while(1);
}
#include<stdio.h>
#include<process.h>
class STACK
{
int ST[50];int top;
public:
STACK()
{
top=-1;
}
void Push();
void Pop();
void Display();
};
void STACK::Push()
{
if(top==49)
cout<<"Stack is Full\n";
else
{
cout<<"Enter Element to push on to the stack\n";
cin>>ST[++top];
}
}
void STACK::Pop()
{
if(top==-1)
cout<<"Empty Stack. Nothing is there to pop\n";
else
cout<<ST[top--]<<" deleted\n";
}
void STACK::Display()
{
int t = top;
if(t==-1)
cout<<"Empty Stack\n";
else
{
while(t>=0)
{
cout<<ST[t--]<<"-->";
}
cout<<"\bEND\n";
}
}
void main()
{
int choice;
STACK S;
do
{
cout<<"Enter Your Choice\n1. Push\n2. Pop\n3. Display\n4. Exit\n";
cin>>choice;
switch(choice)
{
case 1: S.Push();
break;
case 2: S.Pop();
break;
case 3: S.Display();
break;
case 4: exit(0);
default:cout<<"Wrong Choice. Try Again\n";
}
}while(1);
}
PROGRAM DETAILS WITH EXPLANATION OF EACH LINE
#include<iostream.h> //This header file is required to add code for cout and cin. #include<process.h> //For exit(0)
class STACK WE DECLARED A CLASS NAMED STACK
{ //class starts here
int ST[50]; //An array with size 50 to work as an static stack.
int top; //An element to keep track on the topmost element on the stack.
public:
STACK() //Constructor to initialize top as -1 because at the time of first
{ //entry it will move to 0 by ++top as 0 is the first element of the
top=-1; //stack. we use ++top because of using pre-increment it becomes
} //0 first and then input will be in ST[0] index.
void Push(); //WE created Push( ), a function to input new entry on stack.
void Pop(); //WE created Pop( ), a function to remove top entry on stack.
void Display(); //WE created Display( ), a function to display ell entries on stack.
};
void STACK::Push() //Here definition of Push( ) function.
{
if(top==49) //if topmost element is at index 49, then stack is full, no more entries
cout<<"Stack is Full\n"; //possible.
else
{ //otherwise ask user to enter the new value to push on to stack.
cout<<"Enter Element to push on to the stack\n";
cin>>ST[++top]; //Here first top element will move to next index in array and then
} //it enter the new value at the new index which is blank.
}
void STACK::Pop() //Here definition of Push( ) function.
{
if(top==-1) //if topmost element is at index -1, then stack is vacant, no more
cout<<"Empty Stack. Nothing is there to pop\n"; //values are on to the stack to pop.
else
cout<<ST[top--]<<" deleted\n"; //Otherwise top element is popped at topomost index
} //and then top index will move down by one index as --top.
void STACK::Display() //Here definition of Display( ) function.
{
int t = top; //I saved the value of top in a new variable because i will
if(t==-1) //move this new variable and it will not affect the original top.
cout<<"Empty Stack\n"; //So again, if top index is -1, stack is empty.
else
{
while(t>=0) //Otherwise it will display all entries in backwards direction
{ //from top to bottom as per the concept of STACK
cout<<ST[t--]<<"-->"; // and moves the new index to 0 and stops.
} //Note - Our original top is still at the top. (t is not top)
cout<<"\bEND\n"; //\b is used to delete the last > So that it will display values
} // in a format like 15-->14-->13-->12-->11--END
} //Note in the end > sign is not there to not to confuse.
void main() //Main program starts here.
{
int choice; //A variable to take input for 1.PUSH/2.POP/3.DISPLAY/4.EXIT.
STACK S; //Taking object of STACK class.
do //Starting loop to make and infinite menu to get more and more
{ //entries, loops will stop only when user press 4. (for Exit).
cout<<"Enter Your Choice\n1. Push\n2. Pop\n3. Display\n4. Exit\n"; //Display Menu
cin>>choice; //Taking choice of user out of 1.PUSH/2.POP/3.DISPLAY/4.EXIT.
switch(choice) //switch is used to execute one function as per user choice.
{
case 1: S.Push(); //Push function invoked if used pressed 1 and wants to push entry.
break;
case 2: S.Pop(); //Pop function invoked if used pressed 2 and wants to pop top entry.
break;
case 3: S.Display(); //Display function invoked if used pressed 1 and wants to display
break; //all entries from top to bottom.
case 4: exit(0); //If user wants to quit the program and exits the application.
default : cout<<"Wrong Choice. Try Again\n"; //If user enter anything other than 1 to 4.
}
}while(1); /Makes menu display infinte. Exit only by exit(0) (press 4 in menu.)
}
No comments:
Post a Comment