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