#include <iostream>
using namespace std;
class stack{
private :
int size;
int top;
int * arr;
public :
stack( int value) {
size= value;
top= - 1 ;
arr = new int [ size] ;
}
bool empty( ) {
return ( top== - 1 ) ; }
bool full( ) {
return ( top== size- 1 ) ; }
void push( int v) {
if ( full( ) ) {
cout << " sorry i cant add : " << v<< endl;
}
else {
top++ ;
arr[ top] = v;
cout << v<< " " << "push succefull" << endl;
} }
int pop( ) {
if ( empty( ) ) {
cout << " stack is empty" << endl;
} else {
cout << " pop succsesful" << endl; }
return arr[ top-- ] ; }
int peek( ) {
return arr[ top] ; }
void display( ) {
cout << " your element is " << endl;
for ( int i= top; i>= 0 ; i-- ) {
cout << " valuue is :" << arr[ i] << " " ;
} cout << endl;
}
} ;
int main( )
{
int si;
cout << "enter your(stack)size" << endl;
cin >> si;
cout << " your size now is " << si<< endl;
stack s( si) ;
cout << " enter size order for push" << endl;
int p;
cin >> p;
while ( p-- > 0 )
{
int value ;
cout << "push : value << " ;
cin >> value;
s.push ( value) ;
}
s.display ( ) ;
cout << "how often do you want to pop : " ;
int pop;
cin >> pop;
cout << endl;
while ( pop-- > 0 )
{
cout << s.pop ( ) ;
}
cout << endl;
cout << " the end value is : " << s.peek ( ) << endl;
cout << "now your element after push and pop is " << endl;
s.display ( ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3Mgc3RhY2t7CiAgICBwcml2YXRlOgppbnQgc2l6ZTsKaW50IHRvcDsKaW50ICphcnI7CnB1YmxpYzoKc3RhY2soaW50IHZhbHVlKXsKc2l6ZT12YWx1ZTsKdG9wPS0xOwphcnIgPSBuZXcgaW50W3NpemVdOwp9CmJvb2wgZW1wdHkoKXsKCnJldHVybih0b3A9PS0xKTt9CmJvb2wgZnVsbCgpewpyZXR1cm4odG9wPT1zaXplLTEpO30Kdm9pZCBwdXNoKGludCB2KXsKaWYgKGZ1bGwoKSl7CiAgICBjb3V0PDwiIHNvcnJ5IGkgY2FudCBhZGQgIDogIjw8IHY8PGVuZGw7Cn0KZWxzZXsKICAgICAgICB0b3ArKzsKICAgIGFyclt0b3BdPXY7CiAgICBjb3V0PDwgdjw8IiAiPDwicHVzaCBzdWNjZWZ1bGwiPDxlbmRsOwp9fQppbnQgcG9wKCl7CmlmKGVtcHR5KCkpewogICBjb3V0PDwiIHN0YWNrIGlzIGVtcHR5Ijw8ZW5kbDsKCiAgIH0gZWxzZXsKCiAgIGNvdXQ8PCAiIHBvcCBzdWNjc2VzZnVsIjw8ZW5kbDt9CiAgIHJldHVybiBhcnJbdG9wLS1dO30KCgogICBpbnQgcGVlaygpewogICByZXR1cm4gYXJyW3RvcF07fQogdm9pZCBkaXNwbGF5KCl7CiAgICAgY291dDw8IiB5b3VyIGVsZW1lbnQgaXMgIjw8ZW5kbDsKIGZvcihpbnQgaT10b3A7aT49MDtpLS0pewogICAgY291dCA8PCAiIHZhbHV1ZSBpcyA6Ijw8IGFycltpXTw8IiAiOwogfWNvdXQ8PGVuZGw7CgogfQoKCgp9OwppbnQgbWFpbigpCnsKICAgIGludCBzaTsKICAgIGNvdXQ8PCAiZW50ZXIgeW91cihzdGFjaylzaXplIjw8ZW5kbDsKICAgIGNpbj4+c2k7CiAgICBjb3V0IDw8ICIgeW91ciBzaXplIG5vdyBpcyAiIDw8IHNpPDxlbmRsOwogICAgc3RhY2sgcyhzaSk7CiAgICBjb3V0PDwiIGVudGVyIHNpemUgb3JkZXIgZm9yIHB1c2giPDxlbmRsOwogICAgaW50IHA7CiAgICBjaW4+PnA7CiAgICB3aGlsZSAocC0tPjApCiAgICB7CiAgICBpbnQgdmFsdWUgOwogICAgY291dDw8ICJwdXNoIDogdmFsdWUgPDwgIjsgCiAgICBjaW4+PnZhbHVlOwogICAgcy5wdXNoKHZhbHVlKTsKICAgIH0KICAKcy5kaXNwbGF5KCk7CmNvdXQ8PCJob3cgb2Z0ZW4gZG8geW91IHdhbnQgdG8gcG9wIDogIjsKaW50IHBvcDsKY2luPj5wb3A7CmNvdXQ8PGVuZGw7CndoaWxlIChwb3AtLT4wKQp7CiAgIGNvdXQ8PHMucG9wKCk7IAp9CmNvdXQ8PGVuZGw7Cgpjb3V0PDwiIHRoZSBlbmQgdmFsdWUgaXMgOiAiPDxzLnBlZWsoKTw8ZW5kbDsKY291dDw8Im5vdyB5b3VyIGVsZW1lbnQgYWZ0ZXIgcHVzaCBhbmQgcG9wIGlzICI8PGVuZGw7CnMuZGlzcGxheSgpOwoKCgogICAgcmV0dXJuIDA7Cn0K