设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP递归算法的示例程序

发布时间:2022-02-23 15:15 所属栏目:121 来源:互联网
导读:递归算法虽然不是高性能的算法但是递归我们用到的非常的多,如目录遍历或树形结构都会有用到了,下面一起来看小编整理了一些关于递归算法的解析与例子。 递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调
  递归算法虽然不是高性能的算法但是递归我们用到的非常的多,如目录遍历或树形结构都会有用到了,下面一起来看小编整理了一些关于递归算法的解析与例子。
 
  递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白,直接上例子
 
  function test ($n){
  echo $n.”  “;
  if($n>0){
  test($n-1);
  }else{
  echo “<–>”;
  }
  echo $n.”  ”
  }
  test(2)
  这个例子最终的输出结果是2 1 0<–>0 1 2
 
  我解释下  为何输出是这样的
 
  第一步,执行test(2),echo 2,然后因为2>0,执行test(1), 后面还有没来得及执行的echo 2
 
  第二步,执行test(1),echo 1,然后因为1>0,执行test(0),同样后面还有没来得及执行的 echo 1
 
  第三步,执行test(0),echo 0,执行test(0),echo 0,  此时0>0的条件不满足,不在执行test()函数,而是echo “<–>”,并且执行后面的 echo 0
 
  
  function file_list($path){
      if ($handle = opendir($path)) {
          while (false !== ($file = readdir($handle))) {
              if ($file != "." && $file != "..") {
                  if (is_dir($path."/".$file)) {
                      echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
                      file_list($path."/".$file);
                  } else { //Cuoxin.com
                      echo $path.": ".$file."<br>";
                  }
              }
          }
      }
  }
  例子
 
  递归的应用中序遍历二叉树
 
  void inorder (BinTree T){    
  if (T){    
  inorder(T->lchild);    
  printf(“%c”,T->data);    
  inorder(T->rchild);    
  }    
  }
 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读