PHP实现按之字形顺序打印二叉树的方法
作者:重口味AC 发布时间:2023-07-05 08:33:30
标签: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程序设计有所帮助。
来源:http://blog.csdn.net/acingdreamer/article/details/70030480
0
投稿
猜你喜欢
- The Only Thing We Have To Fear Is Premature Standardization原文地址:http:/
- Apple4.us的张亮问我:“很多人说用户体验是苹果的核心竞争力。在用户体验方面,我究竟该从苹果的设计中学习什么” ?关于这个问题的答案我
- 这个项目到一开始的kickoff到现在,持续了很长的一段时间,现在差不多也接近了尾声,所以要好好做个总结,下面不会设计到太多技术层面上的东西
- 网上有很多关于PHP在IIS下配置的教程,但都是一些很理性化的东西,我从里面整理出来这个教程 发出来为了方便参考,有什么问题也可以大家一起交
- 环境Laravel 5.4原理在Laravel中,门面为应用服务容器中绑定的类提供了一个“静态”接口
- 问:Perl下应当如何连接Access数据库答:首先需要安装Win32-ODBC模块,具体的步骤如下:1:从TOOLS栏目中下载Win32-
- 我开发了一个程序,数据在服务器端处理,通过ODBC和Access通讯。在实际应用中,调用后台存储过程不方便,花费时间也长。有什么好办法可以在
- Function closeUBB(strContent) '*************************
- for 循环本系列前面 “探索 Python,第 5 部分:用 Python 编程” 一文讨论了 if 语句和 while 循环,讨论了复合
- 为数据库配置比较大的内存,可以有效提高数据库性能。因为数据库在运行过程中,会在内存中划出一块区域来作为数据缓存。通常情况下,用户访问数据库时
- Web 标准要求一览表Russ WeakleyJjgod Jiang14-Aug-2004目录1 Web 标准,不仅仅是“不用表格的站点”2
- 保护你的ASP页面的两种办法 有时候你只想让人们从你的站点来访问你的某些页面, 而不允许他们从其它站点的非法链接中到达这些页面。在你想保护的
- 我希望大家看到该标题就能让想象到它的功能: 1、WITH TEMPL
- 举个例子来说,要查找出2007-10-12至2007-10-31之间在网站上注册的会员,选择好日期后,点击“查询”按钮,发现2007-10-
- 现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。但是在
- 在前面的文章中,我分别介绍了基于列表元素柱状图和基于表格元素柱状图的实现方法,虽然方法比较简单,但是它却包含了基本的实现原理。在了解了前面两
- 用analyze进行处理,定期进行处理ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tb1_name
- 请问css如何实现一张图片的倒影。出来的效果就像这样:下面是使用了滤镜来实现倒影的效果:<div style=" width
- 如何在独立服务器上创建用户?假设独立服务器是intels,我们用ADSI来创建一个用户liyanbing,初始口令定为3625:
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C