各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

PHP实现按之字形顺序打印二叉树的方法讲解

管理员 2023-09-05
PHP
113

PHP实现按之字形顺序打印二叉树的方法讲解

内容导读

收集整理的这篇技术教程文章主要介绍了PHP实现按之字形顺序打印二叉树的方法讲解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1498字,纯文字阅读大概需要3分钟

内容图文

这篇文章主要介绍了PHP实现按之字形顺序打印二叉树的方法,涉及php结合栈遍历二叉树的相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP实现按之字形顺序打印二叉树的方法。分享给大家供大家参考,具体如下:

问题

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

解决思路

使用两个栈

实现代码

<?php/*class TreeNode{  var $val;  var $left = NULL;  var $right = NULL;  function __construct($val){    $this->val = $val;  }}*/function MyPrint($pRoot){  if($pRoot == NULL)    return [];  $current = 0;  $next  = 1;  $stack[0] = array();  $stack[1] = array();  $resultQueue = array();  array_push($stack[0], $pRoot);  $i = 0;  $result = array();  $result[0]= array();  while(!empty($stack[0]) || !empty($stack[1])){    $node = array_pop($stack[$current]);    array_push($result[$i], $node->val);    //var_dump($resultQueue);echo "</br>";    if($current == 0){      if($node->left != NULL)        array_push($stack[$next], $node->left);      if($node->right != NULL)        array_push($stack[$next], $node->right);    }else{      if($node->right != NULL)        array_push($stack[$next], $node->right);      if($node->left != NULL)        array_push($stack[$next], $node->left);    }    if(empty($stack[$current])){      $current = 1-$current;      $next  = 1-$next;      if(!empty($stack[0]) || !empty($stack[1])){        $i++;        $result[$i] = array();      }    }  }  return $result;}

您可能感兴趣的文章:

PHP获取二叉树镜像的方法讲解

PHP获取链表中倒数第K个节点的方法讲解

PHP实现从上往下打印二叉树的方法讲解

以上就是PHP实现按之字形顺序打印二叉树的方法讲解的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP实现按之字形顺序打印二叉树的方法讲解全部内容,希望文章能够帮你解决PHP实现按之字形顺序打印二叉树的方法讲解所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部