/********************************************************

* 我写的PHP都是从C语言的数据结构中演化而来************************

**************************************************************

/**

*    ******二叉树图****

*      A                    *

*     * *                   *

*    *   *                  *

*   B     C                *

*        *                   *

*       *                    *

*      D                    *

*       *                    *

*         *E                *

******************

* PHP- 链式二叉树的遍历---先序遍历(根,左,右)-中序遍历(左,根,右)-后序遍历(左,右,根)

* 先 A B C D E

* 中 B A D E C

* 后 B E D C A

* @Author 任孟洋

* @time   2013-8-10

****/

Class  BTreeNode{

public  $data ; //数据域

public  $LeftHand  = NULL ; //左指针

public  $RightHand = NULL ; //右指针

public function  __construct($data){

if(!empty($data))

{

$this->data = $data;

}

}

//先序遍历(根,左,右)递归实现

public  function PreTraverseBTree($BTree){

if (NULL !== $BTree)

{

var_dump($BTree->data);  //根

if (NULL !== $BTree->LeftHand)

{

$this->PreTraverseBTree($BTree->LeftHand); //递归遍历左树

}

if (NULL !== $BTree->RightHand)

{

$this->PreTraverseBTree($BTree->RightHand); //递归遍历右树

}

}

}

//中序遍历(左,根,右)递归实现

public  function  InTraverseBTree($BTree){

if (NULL !== $BTree)

{

if (NULL !== $BTree->LeftHand)

{

$this->InTraverseBTree($BTree->LeftHand); //递归遍历左树

}

var_dump($BTree->data); //根

if (NULL !== $BTree->RightHand)

{

$this->InTraverseBTree($BTree->RightHand); //递归遍历右树

}

}

}

//后序遍历(左,右,根)递归实现

public  function  FexTarverseBTree($BTree){

if (NULL !== $BTree)

{

if (NULL !== $BTree->LeftHand)

{

$this->FexTarverseBTree($BTree->LeftHand); //递归遍历左树

}

if (NULL !== $BTree->RightHand)

{

$this->FexTarverseBTree($BTree->RightHand); //递归遍历右树

}

var_dump($BTree->data); //根

}

}

}

header("Content-Type:text/html;charset=utf-8");

echo '先的内存为'.var_dump(memory_get_usage());

echo '


';

//创建五个节点

$A  = new  BTreeNode('A');

$B  = new  BTreeNode('B');

$C  = new  BTreeNode('C');

$D  = new  BTreeNode('D');

$E  = new  BTreeNode('E');

//连接形成一个二叉树

$A->LeftHand  = $B;

$A->RightHand = $C;

$C->LeftHand  = $D;

$D->RightHand = $E;

//先序遍历

echo '先序遍历的结果'.'
';

$A->PreTraverseBTree($A);

echo '
中序遍历的结果'.'
';

$A->InTraverseBTree($A);

echo  '
后序列遍历的结果'.'
';

$A->FexTarverseBTree($A);

echo '


';

echo '后的内存为'.var_dump(memory_get_usage());

php之二叉树,PHP数据结构之实现链式二叉树与遍历相关推荐

  1. 顺序二叉树(堆)与链式二叉树的C语言实现

    文章目录 树的概念及结构 树的概念 树的相关概念 树的表示 树在实际中的运用 二叉树的概念及结构 二叉树的概念 现实中的二叉树 特殊的二叉树 二叉树的性质 二叉树的存储结构 二叉树的顺序结构及实现 二 ...

  2. 二叉树(二)----->链式二叉树(上)

    文章的主体内容 1.链式二叉树链式二叉树的表示法 2.二叉树的前中后序遍历思想 3.求二叉树节点的个数及叶子节点的个数及第k层节点数 5.查找二叉树值为x的节点 6.二叉树的层序遍历 7.二叉树的深度 ...

  3. 数据结构初阶——链式二叉树

    目录 树概念及结构 树的概念 树的表示 二叉树概念及结构 概念 特殊二叉树 二叉树的性质 二叉树链式结构及实现 二叉树的简单创建 二叉树的前序遍历 二叉树中序遍历与二叉树后序遍历 求二叉树节点个数 求 ...

  4. 链式二叉树的代码实现

    目录 二叉树的存储结构: 链式二叉树的实现 1.二叉树的结构体类型 2.创建二叉树结点 代码实现: 3.二叉树的前序遍历 测试结果: 4.二叉树的中序遍历 测试结果: 5.二叉树的后序遍历 测试结果: ...

  5. 数据结构树状结构链式二叉树

    链式二叉树: 遍历: 前序 中序 后序 下面是具体实现: 1.前序遍历: void PreTraverseLTree(struct LTNode *pT) {if(pT!=NULL){cout< ...

  6. 【C】二叉树--顺序结构(详解堆的实现,topK排序、堆排)、和链式结构(链式结构的遍历、链式结构常见递归操作以及练习题)

    本章我们将引入树的概念并详细介绍二叉树.我们会在介绍顺序二叉树基础上,进一步介绍堆以及堆的实现,并以此为依据详解topK排序.堆排等问题:然后我们会介绍链式二叉树的实现以及各种操作.最后,我们也会给出 ...

  7. 二叉树的链式结构递归遍历实现

    二叉树的链式结构递归遍历实现 1.     BinTree.h文件 #ifndef__BINTREE_H__ #define__BINTREE_H__ #include<stdio.h> ...

  8. 将顺序二叉树存储序列转化为链式存储序列-c语言

    将顺序二叉树存储序列转化为链式存储序列 - 题目描述: 将给定顺序二叉树存储序列转换为链式二叉树存储序列显示 char data[13] = {'0','A','B','C','0','D','E', ...

  9. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)

    假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...

最新文章

  1. 小白阶段如何学习Web前端知识
  2. [OS复习]进程管理3
  3. 开源项目GoodView点赞效果
  4. 简单shell:删除五日之前的日志文件
  5. SLF4JLoggerContext cannot be cast to LoggerContext
  6. CAD答辩周 -- 与自己相关的几场
  7. mysql在linux下的完整安装
  8. 3-4 文件读写例子(2)
  9. Adhesive框架系列文章--报警服务使用实践
  10. go mock mysql_go sqlmocks的使用
  11. html input提交按钮无法使用,无法找到并单击提交按钮使用mshtml.HTMLInputElement
  12. POM文件详解(如何组织POM文件)
  13. 迪文屏程序制作。通讯
  14. 无器械健身锻炼全身肌肉的方法
  15. 罗米欧与朱丽叶(徐志摩)
  16. 几种经典的下肢力量练习方式
  17. PON光模块相关知识
  18. 浪漫的星空,表白的弹窗,python制作
  19. Stm32f103的can模块配置和调试
  20. 弄懂这56个Python使用技巧,掌握Python高效开发

热门文章

  1. 神经网络的分类行为怎么就不能是一种力的行为?
  2. 实验:是否图片的重叠区域携带了决定分类的所有信息?
  3. 测量一条反斜线的频率和质量n+m=9
  4. 【控制】《多无人机协同控制技术》周伟老师-第10章-多无人机协同目标跟踪飞行控制策略
  5. 一篇文章搞定GVIM(根据工作经验持续更新)
  6. 【树莓派】小空间树莓派镜像系统备份方法img镜像文件压缩方法
  7. 基于FPGA的超声波数据图像显示
  8. Python入门篇-高级数据类型集合(set)和字典(dict)
  9. CSS之:active选择器
  10. 开源作品ThinkJDBC—一行代码搞定数据库操作