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]
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)104
- C++ 实现:按顺序存储并输出战力 1 - 10 守卫数量(DeepSeek | 130点数解答 | 2026-01-17 14:11:22)86
- C++实现按战力顺序输出守卫数量(字节豆包 | 185点数解答 | 2026-02-25 22:33:20)57
- C++实现按战力顺序输出守卫数量(字节豆包 | 497点数解答 | 2026-03-20 20:01:06)39
- 小核桃存储守卫战力数量的Python程序实现(字节豆包 | 150点数解答 | 2026-04-03 19:47:58)48
- 使用C++实现存储守卫战力并按顺序输出的程序(字节豆包 | 224点数解答 | 2026-04-12 19:13:22)28
- C++实现按战力顺序输出守卫数量(字节豆包 | 178点数解答 | 2026-05-16 20:40:13)19
- C++实现按战力顺序输出守卫数量的程序及开发建议(字节豆包 | 650点数解答 | 2026-05-16 21:25:38)27
- C++ 实现存储并输出不同战力守卫数量(字节豆包 | 393点数解答 | 2026-05-30 19:39:09)19
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)471
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)318
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)318