java递归算法例子,递归算法案例

  java递归算法例子,递归算法案例

  递归三要素:

  1、明确递归终止条件;

  2、给出递归终止时的处理办法;

  3、提取重复的逻辑,缩小问题规模。

  1、1 2 3 … n

  导入Java。util。扫描仪;

  公共类递归{

  公共静态void main(String[] args) {

  扫描仪输入=新扫描仪(系统。在);

  int n=in。nextint();

  系统。出去。println(sum(n));

  }

  公共静态int sum(int n) {

  if(n==1) {

  返回n;

  }

  否则{

  返回n sum(n-1);

  }

  }

  }2、1 * 2 * 3 *……* n

  (推荐学习:java视频教程)

  导入Java。util。扫描仪;

  公共类递归{

  公共静态void main(String[] args) {

  扫描仪输入=新扫描仪(系统。在);

  int n=in。nextint();

  系统。出去。println(multiply(n));

  }

  公共静态int multiply(int n) {

  if(n==1) {

  返回n;

  }

  否则{

  返回n *乘(n-1);

  }

  }

  }3、斐波那契数列

  前两项均为1,第三项开始,每一项都等于前两项之和。即:1,1,2,3,5,8,…

  导入Java。util。扫描仪;

  公共类递归{

  公共静态void main(String[] args) {

  扫描仪输入=新扫描仪(系统。在);

  int n=in。nextint();

  系统。出去。println(fun(n));

  }

  公共静态利息基金(利息)

  如果(n=2) {

  返回1;

  }

  否则{

  返回乐趣(n-1)乐趣(n-2);

  }

  }

  }4、二叉树的遍历(前、中、后)

  导入Java。util。数组;

  导入Java。util。链表;

  公共类MyBinaryTree {

  //二叉树节点

  私有静态类TreeNode{

  (同Internationalorganizations)国际组织数据;

  TreeNode leftChild

  TreeNode right智利

  公共TreeNode(整数数据){

  this.data=数据

  }

  }

  //构建二叉树

  公共静态TreeNode createBinaryTree(链接表整数输入列表){

  TreeNode节点=空

  if(输入列表==null 输入列表。isempty()){

  返回空

  }

  整数数据=输入列表。首先删除();

  //如果元素为空,则不再递归

  如果(数据!=null){

  node=新的TreeNode(数据);

  节点。left child=createBinaryTree(输入列表);

  节点。右智利=createBinaryTree(输入列表);

  }

  返回节点;

  }

  //前序遍历:根节点,左子树,右子树

  公共静态无效预订行程(TreeNode节点){

  if (node==null) {

  返回;

  }

  系统。出去。println(节点。数据);

  预订旅行(节点。左孩子);

  预订旅行(节点。右智利);

  }

  //中序遍历:左子树,根节点,右子树

  公共静态横向无效(TreeNode节点){

  if(node==null) {

  返回;

  }

  inOrderTraveral(节点。左孩子);

  System.out.println(节点);

  inOrderTraveral(节点。右智利);

  }

  //后序遍历:左子树,右子树,根节点

  公共静态作废订单旅行(TreeNode节点){

  if (node==null) {

  返回;

  }

  postOrderTraveral(节点。左孩子);

  postOrderTraveral(节点。右智利);

  系统。出去。println(节点。数据);

  }

  公共静态void main(String[] args) {

  链表整数输入列表=新链表整数(数组。as list(new Integer[]{ 3,2,9,null,null,10,null,null,8,null,4 });

  TreeNode TreeNode=createBinaryTree(输入列表);

  System.out.println(前序遍历:);

  前序横向(treeNode);

  System.out.println(中序遍历:);

  按顺序遍历(treeNode);

  System.out.println(后序遍历:);

  订单后旅行(treeNode);

  }

  }相关文章教程分享:java入门教程以上就是爪哇岛递归算法实例的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言递归法求汉诺塔,汉诺塔递归算法c++语言
  • c语言递归法求汉诺塔,汉诺塔递归算法c++语言,C语言超详细讲解递归算法汉诺塔
  • javan的阶乘的递归算法,递归算法实现阶乘
  • javan的阶乘的递归算法,递归算法实现阶乘,Java算法之递归算法计算阶乘
  • 用递归法求汉诺塔问题Python,汉诺塔递归算法编程
  • 递归算法经典实例,递归算法一般利用什么实现
  • 深度优先搜索的递归算法,设计一个程序实现深度优先搜索(使用递归算法)
  • 汉诺塔问题递归算法实现过程,使用递归方法实现汉诺塔问题的求解编程
  • Python二分查找算法,二分查找非递归算法
  • 迭代算法与递归算法,简述迭代和递归的区别
  • python递归函数例子,Python递归算法经典实例
  • 递归算法和经典递归例子,递归函数python例子
  • python中递归程序,所有递归程序都可以用非递归算法实现
  • 最简单的递归算法c语言举例,递归算法经典实例c语言
  • 递归算法复杂度分析步骤,递归算法的时间复杂度和空间复杂度
  • 留言与评论(共有 条评论)
       
    验证码: