酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用两个栈实现队列#include <stdio.h>#include <stack> using namespace std; class cqueue{ public: stack<int>s1; stack<int> s2; cqueue() { void appendtail(int value){//队尾插入 int deletehead(){//队头删除 return -1; 1 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;

以下是使用两个栈实现队列的 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` 表示队列为空。 [2024-10-17 10:43:11 | AI写代码神器 | 372点数解答]

相关提问