c·c++/c++ 프로그래밍

스택 클래스

바로이순간 2012. 11. 5. 10:22

#include <iostream>

using namespace std;

class Stack {

public:

    Stack();

 

    void Push(int val);

    int Pop();


    bool IsEmpty();

    bool IsFull();


private:

    int top;

    int data[100];

    int maxCount;

};

 

Stack::Stack() {

    maxCount=100;

    top=-1;

}


bool Stack::IsEmpty() {

    if(top==-1) return true;

    return false;

}

bool Stack::IsFull() {

    if(top==maxCount-1) return true;

    return false;

}

 

void Stack::Push(int val) {

    if(IsFull()) {

        cout<<"****Stack is full!****"<<endl;

        return;

    }  

    top=top+1;

    data[top]=val;

}

 

int Stack::Pop() {

    if(IsEmpty()) {

        cout<<"****Stack is empty!****"<<endl;

        return -1;

    }

    return data[top--];

}



int main() {

    int i;

 

    Stack stack;

 

    for(i=0;i<5;++i) {

        cout<<"Push "<<i+1<<endl;

        stack.Push(i+1);

    }

 

    for(i=0;i<5;++i)

        cout << "pop "<< stack.Pop() << endl;

 

    return 0;

}