[PHP] 数据结构-二叉树的创建PHP实现
2023-02-18 15:47:12 时间
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);
A B # D # # C # # 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 } }
相关文章
- [编程] C语言的二级指针
- [编程] C语言的结构体
- [编程] C语言变量和数据类型总结练习题
- [生活] 日常英语学习笔记-NEVER HAVE I EVER游戏
- [PHP] pmap可以查看进程占用内存的详细情况
- [PHP] 解决php中上传大文件的错误
- [PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索(二)
- [PHP] 循环查看php-fpm的内存占用情况
- [PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索
- [MySQL] mysql中bitmap的简单运用
- [生活] 我又看了遍皮克斯动画《玩具总动员》
- [MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'
- [日常] 前端资源测试机上忽略版本号的的nginx配置
- [PHP] PHP PDO与mysql的连接单例防止超时情况处理
- [PHP] 使用Socket提供Http服务
- [PHP] 实现路由映射到指定控制器
- [PHP] 命令行执行整合pathinfo模拟定时任务
- [PHP] 自定义错误处理
- [Php] windows下使用composer出现SHA384 is not supported by your openssl extension
- [PHP] url的pathinfo模式加载不同控制器的实现