stack2개로-queue만들기
각각 enqueue, dequeue용으로 스택을 이용한다.
class Queue {
public:
stack<int> enQBox;
stack<int> deQBox;
void enqueue(int value) {
enQBox.push(value);
}
int dequeue() {
while(!enQBox.empty()) {
int value = enQBox.top();
deQBox.push(value);
enQBox.pop();
}
int valueDequeued = deQBox.top();
deQBox.pop();
return valueDequeued;
}
};
int main(int argc, const char * argv[]) {
Queue* q1 = new Queue();
q1->enqueue(1);
q1->enqueue(2);
q1->enqueue(3);
printf("%d\n", q1->dequeue());
printf("%d\n", q1->dequeue());
printf("%d\n", q1->dequeue());
return 0;
}
Last updated
Was this helpful?