二叉树的创建PHP实现
2018-10-29 15:29:10来源:博客园 阅读 ()
1.利用递归的原理,只不过在原来打印结点的地方,改成了生成结点,给结点赋值的操作
if(ch=='#'){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)->rchild);}
2.前序遍历:先访问根结点,前序遍历左子树,前序遍历右子树;中左右
3.将二叉树中每个结点的空指针引出一个虚结点,其值为特定值#,处理二叉树为原二叉树的扩展二叉树,扩展二叉树做到一个遍历序列确定一棵二叉树
<?php
class
BinTree{
public
$data;
public
$left;
public
$right;
}
//前序遍历生成二叉树
function createBinTree(){
$handle=fopen(
"php://stdin"
,
"r"
);
$e=trim(fgets($handle));
if
($e==
"#"
){
$binTree=
null
;
}
else
{
$binTree=
new
BinTree();
$binTree->data=$e;
$binTree->left=createBinTree();
$binTree->right=createBinTree();
}
return
$binTree;
}
$tree=createBinTree();
var_dump($tree);
#
object
(BinTree)#1 (3) {
[
"data"
]=>
string
(1)
"A"
[
"left"
]=>
object
(BinTree)#2 (3) {
[
"data"
]=>
string
(1)
"B"
[
"left"
]=>
NULL
[
"right"
]=>
object
(BinTree)#3 (3) {
[
"data"
]=>
string
(1)
"D"
[
"left"
]=>
NULL
[
"right"
]=>
NULL
}
}
[
"right"
]=>
object
(BinTree)#4 (3) {
[
"data"
]=>
string
(1)
"C"
[
"left"
]=>
NULL
[
"right"
]=>
NULL
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash