zoukankan      html  css  js  c++  java
  • [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
      }
    }
    

      

      

  • 相关阅读:
    unity, texture import settings
    unity, 最简单的additive shader
    unity, shader input and output
    unity, multi pass shader中的surface pass
    unity, 荧光效果(bloom)
    unity, 查看内置shader源码
    unity, Find References In Scene
    unity 主循环
    unity 显示帧率
    HttpUrlConnection的setDoOutput与setDoInput的区别
  • 原文地址:https://www.cnblogs.com/taoshihan/p/9558899.html
Copyright © 2011-2022 走看看