Advertisement
AntonioVillanueva

Ensayo de una pila .....

May 15th, 2017
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Stack{
  6.     private:
  7.         static const int MIN_CAPACITY=10;
  8.         int *data;
  9.         int stack_top=-1;
  10.         int capacity;
  11.     public:
  12.         Stack();
  13.         Stack(int capacity);
  14.         ~Stack();
  15.         virtual int size ();
  16.         virtual bool isEmpty();
  17.         virtual int top();
  18.         virtual void push(int value);
  19.         virtual int pop();
  20.         virtual void print();
  21. };
  22. //Definiciones Stack
  23.         Stack::Stack():Stack(MIN_CAPACITY){};
  24.         Stack::Stack(int capacity):stack_top(capacity-1),capacity(capacity) {data=new int [capacity] ;};
  25.         Stack::~Stack(){delete(data);};
  26.         int Stack::size (){return capacity;};
  27.         bool Stack::isEmpty(){ return (stack_top==capacity) ? true : false ;};
  28.         int Stack::top(){return stack_top;};
  29.         void Stack::push(int value){
  30.                 if (stack_top<0){return ;}
  31.                 *(data+stack_top)=value;
  32.                 stack_top--;
  33.             };
  34.         int Stack::pop(){stack_top++;return *(data+stack_top);};
  35.         void Stack::print(){
  36.             for (int stack=capacity-1;stack!=-1;stack--){
  37.                 cout <<stack<<" = "<<*(data+stack)<<endl;
  38.             };
  39.         }
  40.  
  41. int main() {
  42.         Stack s(3);
  43.         cout <<"Empty "<<s.isEmpty()<<endl;
  44.         s.push(79);
  45.         s.push(81);
  46.         s.push(6); 
  47.        
  48.                 s.push(5);             
  49.        
  50.         cout <<"Size "<<s.size()<<endl;
  51.         cout <<"Top "<<s.top()<<endl;
  52.         //cout <<s.pop()<<endl;
  53.         s.print();
  54.        
  55.  
  56.         return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement