经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
[PHP]算法- 二叉树的深度的PHP实现
来源:cnblogs  作者:陶士涵  时间:2018/10/9 10:11:48  对本文有异议
  1. 二叉树的深度:
  2. 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
  3. 思路:
  4. 1.非递归层序遍历
  5. 2.使用辅助队列,根结点先入队列
  6. 3. 循环判断队列是否为空,如果不为空就继续循环队列里面的每个结点
  7. 4. 循环队列时,当前当前结点出队列,把该结点的左右孩子入队列
  8. TreeDepth(tree)
  9. if !tree return 0
  10. array_push(queue,tree);
  11. depth=0
  12. while(!empty(queue)){
  13. ++depth
  14. for i=0;i<queue.size;i++
  15. node=array_pop(queue)
  16. array_push(queue,node->left);
  17. array_push(queue,node->right);
  18. return depth
  1. <?php
  2. class TreeNode{
  3. var $val;
  4. var $left = NULL;
  5. var $right = NULL;
  6. function __construct($val){
  7. $this->val = $val;
  8. }
  9. }
  10. function TreeDepth($tree)
  11. {
  12. if(!$tree) return 0;
  13. $queue=array();
  14. array_push($queue,$tree);//在数组最后添加元素
  15. $depth=0;
  16. while(!empty($queue)){
  17. $depth++;
  18. $size=count($queue);
  19. for($i=0;$i<$size;$i++){
  20. $node=array_shift($queue);//非常重要 删除第一个元素
  21. if($node->left){
  22. array_push($queue,$node->left);
  23. }
  24. if($node->right){
  25. array_push($queue,$node->right);
  26. }
  27. }
  28. }
  29. return $depth;
  30. }
  31. $node1=new TreeNode(1);
  32. $node2=new TreeNode(2);
  33. $node3=new TreeNode(3);
  34. $node4=new TreeNode(4);
  35. $node5=new TreeNode(5);
  36. $node6=new TreeNode(6);
  37. $node7=new TreeNode(7);
  38. $tree=$node1;
  39. $node1->left=$node2;
  40. $node1->right=$node3;
  41. $node2->left=$node4;
  42. $node2->right=$node5;
  43. $node4->right=$node6;
  44. $node3->left=$node7;
  45. var_dump($tree);
  46. $dep=TreeDepth($tree);
  47. var_dump($dep);

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号