博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树
阅读量:4936 次
发布时间:2019-06-11

本文共 1604 字,大约阅读时间需要 5 分钟。

<?php

//二叉树的遍历
class Node{
public $value;
public $left;
public $right;
}
//先序遍历 根节点 --->左节点 --->右节点
function preorder ($root) {
$stack = array();
array_push($stack,$root);
while(!empty($stack)) {
$center_node = array_pop($stack); //数组的压入与弹出是以栈道的形式表现的先进后出
echo $center_node->value.' ';
if (!empty($center_node->right)) {
array_push($stack, $center_node->right);
}
if (!empty($center_node->left)) {
array_push($stack, $center_node->left);
}
}
}
//中序遍历 左节点--->根节点--->右节点
function inorder ($root) {
$stack = array();
$center_node = $root;
while (!empty($stack) || $center_node != null) {
while ($center_node != null) {
array_push($stack,$center_node);
$center_node = $center_node->left;
}
$center_node = array_pop($stack);
echo $center_node->value;
$center_node = $center_node->right;
}
}
//后序遍历 左节点--->右节点--->根节点
function tailorder ($root) {
$stack = array();
$outstack = array();
array_push($stack, $root);
while ($stack != null) {
$center_node = array_pop($stack);
array_push($outstack, $center_node); //先压入根节点
if ($center_node->left != null) {
array_push($stack, $center_node->left);
}
if ($center_node->right != null) {
array_push($stack,$center_node->right);
}
}
while (!empty($outstack)) {
$center_node = array_pop($outstack);
echo $center_node->value;
}
}
$a=new Node();
$b=new Node();
$c=new Node();
$d=new Node();
$e=new Node();
$f=new Node();
$a->value = 'A';
$b->value = 'B';
$c->value = 'C';
$d->value = 'D';
$e->value = 'E';
$f->value = 'F';
$a->left = $b;
$a->right = $c;
$b->left = $d;
$c->left = $e;
$c->right = $f;
tailorder($a);
?>

转载于:https://www.cnblogs.com/jasonxiaoqinde/p/6690126.html

你可能感兴趣的文章
js二级联动
查看>>
谜题32:循环者的诅咒
查看>>
RMI
查看>>
动态切换多数据源的配置
查看>>
win7电脑调整分区后分区不见的文件寻回法子
查看>>
《第一行代码》学习笔记2-Android开发特色
查看>>
bzoj3396 [Usaco2009 Jan]Total flow 水流
查看>>
20165231 2017-2018-2 《Java程序设计》第3周学习总结
查看>>
(180905)如何通过梯度下降法降低损失----Google机器学习速成课程笔记
查看>>
(响应式PC端媒体查询)电脑屏幕分辨率尺寸大全
查看>>
Crystal Reports拉报表报错:Error detected by database DLL
查看>>
Java获取新浪微博cookies
查看>>
面试题总结
查看>>
【BZOJ1095】捉迷藏(动态点分治)
查看>>
Table Basics [转载]
查看>>
Logback 学习笔记
查看>>
并查集
查看>>
11、组件注册-使用FactoryBean注册组件
查看>>
nyoj_95_众数问题_map练习
查看>>
uchome 是如何将数据插入数据库的
查看>>