[c++] 반복문을 사용한 스택/큐 자료구조 구현

스택과 큐는 컴퓨터 과학에서 흔히 사용되는 자료 구조로, 데이터를 저장하고 가져오는 데 사용됩니다. 이 글에서는 C++를 사용하여 스택과 큐를 표현하는 간단한 방법을 살펴보겠습니다.

스택(Stack) 구현

스택 클래스 정의

#include <iostream>
#include <vector>

template <class T>
class Stack {
private:
    std::vector<T> elements;

public:
    void push(const T& element) {
        elements.push_back(element);
    }

    void pop() {
        if (!elements.empty()) {
            elements.pop_back();
        } else {
            std::cerr << "Stack is empty." << std::endl;
        }
    }

    T top() const {
        if (!elements.empty()) {
            return elements.back();
        } else {
            std::cerr << "Stack is empty." << std::endl;
            return T();
        }
    }

    bool empty() const {
        return elements.empty();
    }
};

스택 사용 예제

int main() {
    Stack<int> stack;
    stack.push(1);
    stack.push(2);
    stack.push(3);

    while (!stack.empty()) {
        std::cout << stack.top() << " ";
        stack.pop();
    }

    return 0;
}

큐(Queue) 구현

큐 클래스 정의

#include <iostream>
#include <queue>

template <class T>
class Queue {
private:
    std::queue<T> elements;

public:
    void push(const T& element) {
        elements.push(element);
    }

    void pop() {
        if (!elements.empty()) {
            elements.pop();
        } else {
            std::cerr << "Queue is empty." << std::endl;
        }
    }

    T front() const {
        if (!elements.empty()) {
            return elements.front();
        } else {
            std::cerr << "Queue is empty." << std::endl;
            return T();
        }
    }

    bool empty() const {
        return elements.empty();
    }
};

큐 사용 예제

int main() {
    Queue<int> queue;
    queue.push(1);
    queue.push(2);
    queue.push(3);

    while (!queue.empty()) {
        std::cout << queue.front() << " ";
        queue.pop();
    }

    return 0;
}

이렇게 C++를 사용하여 스택과 큐를 간단하게 구현할 수 있습니다. 물론 실제로는 더 복잡한 구현이 필요할 수 있지만, 이 예제는 간단한 자료 구조의 구현을 보여주기 위한 것입니다.

참고 자료