您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php如何实现二叉树的深度计算(附代码)

2025/7/18 11:51:58发布24次查看
本篇文章给大家带来的内容是关于php如何实现二叉树的深度计算(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
二叉树的深度:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:
1.非递归层序遍历
2.使用辅助队列,根结点先入队列
3. 循环判断队列是否为空,如果不为空就继续循环队列里面的每个结点
4. 循环队列时,当前当前结点出队列,把该结点的左右孩子入队列
treedepth(tree) if !tree return 0 array_push(queue,tree); depth=0 while(!empty(queue)){ ++depth for i=0;i<queue.size;i++ node=array_pop(queue) array_push(queue,node->left); array_push(queue,node->right); return depth
<?phpclass treenode{ var $val; var $left = null; var $right = null; function __construct($val){ $this->val = $val; } }function treedepth($tree){ if(!$tree) return 0; $queue=array(); array_push($queue,$tree);//在数组最后添加元素 $depth=0; while(!empty($queue)){ $depth++; $size=count($queue); for($i=0;$i<$size;$i++){ $node=array_shift($queue);//非常重要 删除第一个元素 if($node->left){ array_push($queue,$node->left); } if($node->right){ array_push($queue,$node->right); } } } return $depth;}$node1=new treenode(1);$node2=new treenode(2);$node3=new treenode(3);$node4=new treenode(4);$node5=new treenode(5);$node6=new treenode(6);$node7=new treenode(7);$tree=$node1;$node1->left=$node2;$node1->right=$node3;$node2->left=$node4;$node2->right=$node5;$node4->right=$node6;$node3->left=$node7;var_dump($tree);$dep=treedepth($tree);var_dump($dep);
以上就是php如何实现二叉树的深度计算(附代码)的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product