zoukankan      html  css  js  c++  java
  • JAVA基础知识(2)--堆栈和递归的操作

    2015-07-26 18:16:21
    /**
    *该应用程序对堆栈和递归方法进行实例操作:
    *1、堆栈操作:先进后出,
    *2、递归方法:直接或者调用自己的方法;
    *@author lhm

    *Email:912547587@qq.com

    */
    public class TestStack{
    //属性声明
    private String[] item;
    //top = 0时,堆栈为空;
    private int top=0;
    /**
    *无参构造方法
    *默认声明数组4个
    */
    public TestStack(){
    item = new String[4];
    }
    /**
    *有参构造方法
    *@param i 数组个数
    */
    public TestStack(int i){
    item = new String[i];
    }
    /**
    * 堆栈的添加操作
    * @param s 所添加的字符串
    */
    public void push(String s){
    item[top]=s;
    top++;
    }
    /**
    * 堆栈的删除操作
    *堆栈从栈顶开始进行删除
    */
    public void pop(){

    item[top-1]=null;
    top--;
    }
    /**
    * 返回栈中的元素值;
    * 返回值按先进后出的顺序
    */
    public void getInfo(){
    for(int j=top-1;j>=0;j--){
    System.out.println(item[j]);
    }
    }
    //返回堆栈的大小;
    public int size(){
    return top;
    }
    /**
    *使用递归求解n!
    *@param n
    */
    public int Recursion1(int n){
    if(n==0)
    return 1;
    else
    return n*Recursion1(n-1);
    }
    public int Recursion2(int n){
    return n==0? 1:n*Recursion2(n-1);
    }
    public static void main(String[] args){
    TestStack ts = new TestStack();
    //依次添加字符串;
    ts.push("1");
    ts.push("2");
    ts.push("3");
    ts.push("4");
    System.out.println("----------");
    System.out.println("打印堆栈的字符串:");
    ts.getInfo();
    //ts.pop();
    System.out.println("----------");
    System.out.println("输出3的阶乘是:");
    System.out.println(ts.Recursion1(3));
    System.out.println("输出5的阶乘是:");
    System.out.println(ts.Recursion2(5));
    }
    }

    程序结果:

    ----------
    打印堆栈的字符串:
    4
    3
    2
    1
    ----------
    输出3的阶乘是:
    6
    输出5的阶乘是:
    120

    依次输入:1,2,3,4,结果出来:4,3,2,1

    n的阶乘通过递归的方法进行计算!!

  • 相关阅读:
    SQL截取字符串函数
    深入SQL截取字符串(substring与patindex)的详解
    用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数
    poi导出Excel报表多表头双层表头、合并单元格
    Java对日期Date类进行加减运算,年份加减,月份加减
    mybatis级联
    mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
    MyBatis学习总结(五)——实现关联表查询
    周六日
    ojdbc.jar
  • 原文地址:https://www.cnblogs.com/lihaiming93/p/4678371.html
Copyright © 2011-2022 走看看