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


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

      

      

  • 相关阅读:
    Jmeter 跨脚本入参
    Jmeter 查看结果树显示unicode转中文
    jmeter+ant 接口自动化测试框架
    jmeter jmeter.results.shanhe.me.xsl 模板内容
    Jmeter + ant 接口自动化测试(进阶)
    Linux od命令
    Hadoop初识
    tbn tbc tbr
    ffmpeg之avcodec_open2
    ffmpeg之AVStream
  • 原文地址:https://www.cnblogs.com/taoshihan/p/9558899.html
Copyright © 2020-2023  润新知