千家信息网

php遍历树的常用方法有哪些

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍php遍历树的常用方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、递归的深度优先的算法:
千家信息网最后更新 2025年01月22日php遍历树的常用方法有哪些

这篇文章主要介绍php遍历树的常用方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体如下:

一、递归的深度优先的算法:

----------------------- Test run for '.$func.'() ';  flush();  $time_start = microtime(true);  $list = $func($trydir);  //print_r($list);  $time = microtime(true) - $time_start;  echo 'Finished : '.count($list).' files
'; $mem2 = memory_get_peak_usage(); printf('
Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s
', ($mem2-$mem1)/1024.0, $time); return $list;}profile('rec_list_files', "D:\www\server");?>

二、递归的深度优先的算法(用了一个栈来实现)

----------------------- Test run for '.$func.'() ';  flush();  $time_start = microtime(true);  $list = $func($trydir);  //print_r($list);  $time = microtime(true) - $time_start;  echo 'Finished : '.count($list).' files
'; $mem2 = memory_get_peak_usage(); printf('
Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s
', ($mem2-$mem1)/1024.0, $time); return $list;}profile('deep_first_list_files', "D:\www\server");?>

三、非递归的广度优先算法(用了一个队列来实现)

 NEXT CHILD  }  return $files; // end of tree, file not found}function profile($func, $trydir){  $mem1 = memory_get_usage();  echo '
----------------------- Test run for '.$func.'() ';  flush();  $time_start = microtime(true);  $list = $func($trydir);  //print_r($list);  $time = microtime(true) - $time_start;  echo 'Finished : '.count($list).' files
'; $mem2 = memory_get_peak_usage(); printf('
Max memory for '.$func.'() : %0.2f kbytes Running time for '.$func.'() : %0.f s
', ($mem2-$mem1)/1024.0, $time); return $list;}profile('breadth_first_files', "D:\www\server");?>

以上是"php遍历树的常用方法有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0