首页 > 试题广场 >

用递归函数和栈逆序一个栈

[编程题]用递归函数和栈逆序一个栈
  • 热度指数:8460 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。

输入描述:
输入数据第一行一个整数N为栈中元素的个数。

接下来一行N个整数X_i表示一个栈依次压入的每个元素。


输出描述:
输出一行表示栈中元素逆序后的栈顶到栈底的每个元素
示例1

输入

5
1 2 3 4 5

输出

1 2 3 4 5
头像 冰冰是我的
发表于 2022-01-16 21:23:54
import java.util.Scanner; import java.util.Stack; public class CD7_用递归函数和栈逆序一个栈 { // 递归函数一:将栈底的元素返回并移除 public static int getAndRemoveLastEle 展开全文
头像 gaya
发表于 2021-02-15 13:15:28
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main{ public st 展开全文
头像 Vetrs
发表于 2020-08-15 20:54:34
题目要求只能用递归函数来实现,不能用其他数据结构(这里如果连vector都不能用的话,那就直接用定义数组了) #include <iostream> #include <vector> #include <algorithm> using namespace s 展开全文
头像 立强03
发表于 2022-02-18 21:35:17
思路 使用递归的方法去逆序一个栈,主要分为两步: 使用递归的方法找到栈 栈底 的元素,并返回 使用递归的方式,将元素进行逆置操作,涉及到逆序:要先递归,再操作 1. 递归寻找栈底的元素 递归函数有返回值,因此函数可以逐层返回需要的值return getAndRemoveLastEle 展开全文
头像 牛客931108704号
发表于 2021-07-19 11:21:32
import java.util.Deque; import java.util.Scanner; import java.util.LinkedList; public class Main{     pu 展开全文
头像 亲亲猪儿虫
发表于 2021-03-08 10:37:55
import java.util.*; public class Main{     public static void main(String args[]){    展开全文
头像 Formbru
发表于 2021-12-15 11:25:26
C++ ">#include<stack> using namespace std; class Solution { public: stack<int> ReverseStackUsingRecursive(stack<int>& st) 展开全文
头像 挚诚
发表于 2022-07-28 16:32:06
本体考察的是栈的操作和递归函数的设计,通过递归实现对栈的逆序操作 方法一: 递归函数需要设计两个,按照左神的方法 1.将栈stack的栈底元素返回并移除 int func(stack<int> s){    &nbs 展开全文
头像 yechena
发表于 2022-01-03 00:44:14
递归解法 题 解 见 注 解 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { //=========== 展开全文
头像 牛客695415901号
发表于 2024-04-09 22:47:34
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { static Stack<Integer> stack = new Stack<>(); publ 展开全文