Skip to main content

Stack using Class,Array and Pointer

#include<iostream>
using namespace std;

class stack
{
 public:    
 stack(int num){
  top=-1;
  max=num;
  a=new int[max];
 };  
 void push();
 void pop();
 void display();
private:
int top;
int max;
int input;
int *a;

 };

 void stack::push()
{
 if(top==max-1)
 {
  cout<<"stack is overflow"<<endl;
 }
 else
 {
  cout<<"Enter the Element in the Stack"<<endl;
  cin>>input;
  top=top+1;
  a[top]=input;
 }
 }

 void stack::pop()
{
 if(top==-1)
 {
 cout<<"Stack is Empty"<<endl;
 }
 else
 {
 cout<<"Stack value : "<<a[top]<<endl;
 top=top-1;
 }
}

void stack::display()
{
if(top==-1)
 {
 cout<<"Stack is Empty"<<endl;
 }
 else
 {for(int i=top; i>=0; i--)
 {
  cout<<"Stack["<<i<<"] : "<<a[i]<<endl;
 }
 }
}

int main()
{
int data;
cout<<"Enter the max len of Stack"<<endl;
cin>>data;
stack *stk=new stack(data);
int select;
char again;
do{
  cout<<"***** 1.PUSH ****"<<endl;
  cout<<"***** 2.POP ****"<<endl;
  cout<<"***** 3.Display ****"<<endl;
  cout<<"Select the option"<<endl;
  cin>>select;
switch(select)
 {
 case 1:stk->push();break;
 case 2:stk->pop(); break;
 case 3:stk->display();break;
 default : cout<<"Wrong input"<<endl;
}
cout<<"Do You Want Again(Y/N)"<<endl;
cin>>again;
}while(again=='y'||again=='Y');
}


output :

* note :
int *array = new int[n];
It declares a pointer to a dynamic array of type int and size n.
A little more detailed answer: new allocates memory of size equal to sizeof(int) * n bytes and return the memory which is stored by the variable array. Also, since the memory is dynamically allocated using new


Comments

Popular posts from this blog

Sum of Digit is Pallindrome or not

  Sum of Digit is Pallindrome or not Given a number N.Find if the digit sum(or sum of digits) of N is a Palindrome number or not. Note:A Palindrome number is a number which stays the same when reversed.Example- 121,131,7 etc. Example 1: Input: N=56 Output: 1 Explanation: The digit sum of 56 is 5+6=11. Since, 11 is a palindrome number.Thus, answer is 1. Example 2: Input: N=98 Output: 0 Explanation: The digit sum of 98 is 9+8=17. Since 17 is not a palindrome,thus, answer is 0. Your Task: You don't need to read input or print aything.Your Task is to complete the function isDigitSumPalindrome() which takes a number N as input parameter and returns 1 if the Digit sum of N is a palindrome.Otherwise it returns 0. Expected Time Complexi...

Menu with 5 option & selected option should appear in text box

Q6. Create a menu with 5 options and selected option should appear in text box. Android Program : Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.kishanhaldar.program6.MainActivity">                 ...

Closest Number

Closest Number Basic Accuracy: 11.21% Submissions: 1615 Points: 1 Given non-zero two integers N and M . The problem is to find the number closest to N and divisible by M . If there are more than one such number, then output the one having maximum absolute value .   Example 1: Input: N = 13 , M = 4 Output: 12 Explanation: 12 is the Closest Number to 13 which is divisible by 4. Example 2: Input: N = -15 , M = 6 Output: -18 Explanation: -12 and -18 are both similarly close to -15 and divisible by 6. but -18 has the maximum absolute value. So, Output is -18   Your Task: You don't need to read input or print anyth...