为了账号安全,请及时绑定邮箱和手机立即绑定

[PHP] 数据结构-二叉树的创建PHP实现

标签:
PHP

 

1.利用递归的原理,只不过在原来打印结点的地方,改成了生成结点,给结点赋值的操作
if(ch=='#'){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)->rchild);}

2.前序遍历:先访问根结点,前序遍历左子树,前序遍历右子树;中左右

3.将二叉树中每个结点的空指针引出一个虚结点,其值为特定值#,处理二叉树为原二叉树的扩展二叉树,扩展二叉树做到一个遍历序列确定一棵二叉树

https://img1.sycdn.imooc.com//5b8c11300001517e07840258.jpg

 

?

 <?phpclass 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);

?

AB#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  }}

  原文出处:https://www.cnblogs.com/taoshihan/p/9558899.html


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消