利用二叉树创建、遍历算法,编写程序,创建一颗二叉树,实现对二叉树的先序遍历、中序遍历和后序遍历
时间: 2024-01-23 11:12:54 浏览: 102
实现先序,中序和后序遍历的二叉树遍历程序
5星 · 资源好评率100%
以下是利用PHP实现二叉树的创建和遍历的代码示例:
```php
<?php
// 定义二叉树结点类
class TreeNode {
public $val;
public $left;
public $right;
public function __construct($val) {
$this->val = $val;
$this->left = null;
$this->right = null;
}
}
// 创建二叉树
function createTree() {
global $pos, $str;
$ch = $str[$pos++];
if ($ch == '#') {
return null;
}
$root = new TreeNode($ch);
$root->left = createTree();
$root->right = createTree();
return $root;
}
// 先序遍历
function preOrder($root) {
if ($root == null) {
return;
}
echo $root->val . ' ';
preOrder($root->left);
preOrder($root->right);
}
// 中序遍历
function inOrder($root) {
if ($root == null) {
return;
}
inOrder($root->left);
echo $root->val . ' ';
inOrder($root->right);
}
// 后序遍历
function postOrder($root) {
if ($root == null) {
return;
}
postOrder($root->left);
postOrder($root->right);
echo $root->val . ' ';
}
// 测试代码
$str = 'AB#D##C##';
$pos = 0;
$root = createTree();
echo '先序遍历结果:';
preOrder($root);
echo "\n";
echo '中序遍历结果:';
inOrder($root);
echo "\n";
echo '后序遍历结果:';
postOrder($root);
echo "\n";
?>
```
输出结果为:
```
先序遍历结果:A B D C
中序遍历结果:D B A C
后序遍历结果:D B C A
```
阅读全文