[자료구조] 스택

LIFO(Last In First Out)의 대표적인 자료 구조

stack.png

 

관련 용어


Push : 스택에 입력
Pop : top이 가리키는 곳을 출력
Top : 스택의 가장 윗 부분의 위치를 카리키는 포인터. 처음에는 -1을 가리킨다.

 

구현 코드


C++을 기준으로 작성했습니다.

배열을 이용한 int 자료형 스택

class stack
{
private:
    int capacity;
    int *arr;
    int top;
public:
    stack(int capacity);
    ~stack();
    void push(int data);
    int pop();
    void print();
};
stack::stack(int capacity) : capacity(capacity) {
    arr = new int[capacity];
    top = 1;
}
stack::~stack() {
    delete[] arr;
}
void stack::push(int data) {
    std::cout << “top: “ << top << std::endl;
    if (top + 1 == capacity) {
        std::cout << “Not Enough Empty Space” << std::endl;
        return;
    }
    arr[++top] = data;
}
int stack::pop() {
    if (top == 1) {
        std::cout << “Stack is Empty” << std::endl;
        return 1;
    }
    return arr[top];
}
void stack::print() {
    std::cout << “Stack: “;
    for (int i = 0; i <= top; ++i) {
        std::cout << arr[i] << ” “;
    }
    std::cout << “\n”;
}
cs

 

글쓴이: BakJH

Student of Daedeok SW Meister Highschool, in Korea.