zoukankan      html  css  js  c++  java
  • 栈的逆序(递归实现)

    package stack;

    import java.util.Stack;

    class Rever{

    //递归,把栈底元素压入栈底
    public void rever(Stack<Integer> stack) {
    if(stack.isEmpty()) {
    return ;
    }
    int i=get(stack);
    rever(stack);
    stack.push(i);
    }
    //递归,取出栈底元素,并返回
    public int get(Stack<Integer> stack) {
    int res=stack.pop();
    if(stack.isEmpty()) {
    //返回栈底的元素
    return res;
    }else {
    //上层递归的结果赋值给last
    int last=get(stack);
    //这层的结果压入栈
    stack.push(res);
    //返回last,即栈底元素
    return last;
    }
    }
    }
    public class ReverStack {

    public static void main(String[] args) {
    Stack<Integer> stack=new Stack<Integer>();
    for(int i=0;i<5;i++) {
    stack.push(i);
    }
    Rever r=new Rever();
    r.get(stack);
    //r.rever(stack);
    while(!stack.isEmpty()) {
    System.out.println(stack.pop());
    }
    }

    }

  • 相关阅读:
    Python-迭代器
    Python-if
    Python-赋值
    Python-基础
    Python-元组(tuple),文件
    Python-正则表达式
    Python-字典
    Python-列表
    C结构体之位域(位段)
    SignalTap II应用小实例之触发位置
  • 原文地址:https://www.cnblogs.com/smailjunk/p/8922911.html
Copyright © 2011-2022 走看看