算法总结之 如何用递归函数和栈操作逆序一个栈

一个栈一次压入 1 2 3 4 5 那么从栈顶到栈底分别为 5 4 3 2 1. 将这个栈转置后,从栈顶到栈底为 1  2 3 4 5  实现栈中元素的逆序

要求只能用 递归函数实现 

 

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package TT;
 
import java.util.Stack;
 
public class Test122 {
 
    public static int getAndRemoveLaseElement(Stack<Integer> stack){
         int result = stack.pop();
         if(stack.isEmpty()){
            return result;
         }else {
            int last = getAndRemoveLaseElement(stack);
            stack.push(result);
            return last;
        }
          
    }
     
     
    public static void reverse( Stack<Integer> stack){
        if(stack.isEmpty()){
              return;
        }
         
        int i = getAndRemoveLaseElement(stack);
        reverse(stack);
        stack.push(i);
         
         
         
    }
     
     
     
     
     
}

  这个代码是这么理解:

最后一层递归   空的时候  return result=1   last此时就是1了 然后push进去的都是result~~~~

 

posted @   toov5  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示