酷代码 AI
菜单
服务商

C++:巧用两个栈实现队列功能及代码示例

以下是使用两个栈实现队列的 C++ 代码示例: ```cpp #include <stdio.h> #include <stack> using namespace std; class CQueue { public: stack<int> s1; stack<int> s2; void appendTail(int value) { s1.push(value); } int deleteHead() { if (s2.empty()) { while (!s1.empty()) { s2.push(s1.top()); s1.pop(); } } if (s2.empty()) { return -1; } int res = s2.top(); s2.pop(); return res; } }; int main() { CQueue* obj = new CQueue(); obj->appendTail(1); obj->appendTail(2); obj->appendTail(3); printf("%d\n", obj->deleteHead()); printf("%d\n", obj->deleteHead()); printf("%d\n", obj->deleteHead()); printf("%d\n", obj->deleteHead()); return 0; } ``` 在上述代码中,`appendTail` 函数用于在队尾插入元素,直接将元素压入 `s1` 栈。`deleteHead` 函数用于在队头删除元素,如果 `s2` 栈为空,则将 `s1` 栈的元素依次弹出并压入 `s2` 栈,然后从 `s2` 栈弹出队头元素。如果 `s2` 栈也为空,则返回 `-1` 表示队列为空。 ######[AI写代码神器 | 372点数解答 | 2024-10-17 10:43:11]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]