c++用递归函数和栈实现栈元素逆序输出
作者:野牛程序员:2023-11-20 15:41:31 C++阅读 2593
递归函数是实现栈元素逆序输出的一种有效方法。下面是一个使用递归函数和栈的C++示例代码:
#include <iostream> #include <stack> void reverseStack(std::stack<int> &s) { // 基本情况:栈为空 if (s.empty()) { return; } // 将栈顶元素取出 int topElement = s.top(); s.pop(); // 递归处理剩余元素 reverseStack(s); // 将取出的栈顶元素插入到栈底 insertAtBottom(s, topElement); } void insertAtBottom(std::stack<int> &s, int value) { // 如果栈为空,直接插入元素 if (s.empty()) { s.push(value); return; } // 将栈顶元素取出 int topElement = s.top(); s.pop(); // 递归处理剩余元素 insertAtBottom(s, value); // 将取出的栈顶元素再插入到栈底 s.push(topElement); } int main() { std::stack<int> myStack; // 将元素压入栈 myStack.push(1); myStack.push(2); myStack.push(3); myStack.push(4); std::cout << "原始栈顺序:"; while (!myStack.empty()) { std::cout << myStack.top() << " "; myStack.pop(); } // 逆序输出栈 reverseStack(myStack); std::cout << "\\n逆序输出栈:"; while (!myStack.empty()) { std::cout << myStack.top() << " "; myStack.pop(); } return 0; }
这个程序定义了两个函数:reverseStack
和 insertAtBottom
,通过递归的方式将栈元素逆序输出。在 main
函数中,首先将元素压入栈,然后输出原始栈顺序,接着调用 reverseStack
函数逆序输出栈,并输出逆序后的结果。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
- 上一篇:C++怎么使用递归实现数组前N个元素倒序输出
- 下一篇:计算机二进制八进制等怎么表示