#include <iostream>
#include <stack>
#include <queue>
class CQueue {
public:
CQueue(void);
~CQueue();
void appendTail(int node);
int deleteHeader();
private:
std::stack<int> * stack1;
std::stack<int> * stack2;
};
CQueue::CQueue(void) {
stack2 = new std::stack<int>;
stack1 = new std::stack<int>;
}
CQueue::~CQueue() {
delete stack1;
delete stack2;
}
void CQueue::appendTail(int node) {
stack1->push(node);
}
int CQueue::deleteHeader() {
if (stack2->empty()) {
while (!stack1->empty()) {
int tmp = stack1->top();
stack2->push(tmp);
stack1->pop();
}
}
if (stack2->empty()) {
printf("queue is empty");
return -1;
} else {
int returnValue = stack2->top();
stack2->pop();
return returnValue;
}
}
int main () {
CQueue *queue = new CQueue();
for (int i = 0; i < 10; i++) {
queue->appendTail(i);
}
for (int i = 0; i < 10; i++) {
int result = queue->deleteHeader();
printf("%d",result);
}
}
l4 使用栈(先进后出)来实现队列(先进先出)的功能
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1.成长历程 写梦想清单,无意间实现。 新年能量写下的一刻,一个多月实现第一个条目。 2.关于梦想清单 Q:写下来...