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)23
- C++ 实现:按顺序存储并输出战力 1 - 10 守卫数量(DeepSeek | 130点数解答 | 2026-01-17 14:11:22)50
- C++实现按战力顺序输出守卫数量(字节豆包 | 185点数解答 | 2026-02-25 22:33:20)23
- C++实现按战力顺序输出守卫数量(字节豆包 | 497点数解答 | 2026-03-20 20:01:06)6
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)344
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)264
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)262
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)312
- Three.js 示例代码解析:优化场景渲染与注意要点(字节豆包 | 164点数解答 | 2025-02-27 23:30:20)260
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)262
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)236
- Java 实现仿 Windows 资源管理器:文件管理器功能全解析与代码示例(字节豆包 | 623点数解答 | 2025-01-01 14:59:04)247