php之二叉树,PHP数据结构之实现链式二叉树与遍历
/********************************************************
* 我写的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数据结构之实现链式二叉树与遍历相关推荐
- 顺序二叉树(堆)与链式二叉树的C语言实现
文章目录 树的概念及结构 树的概念 树的相关概念 树的表示 树在实际中的运用 二叉树的概念及结构 二叉树的概念 现实中的二叉树 特殊的二叉树 二叉树的性质 二叉树的存储结构 二叉树的顺序结构及实现 二 ...
- 二叉树(二)----->链式二叉树(上)
文章的主体内容 1.链式二叉树链式二叉树的表示法 2.二叉树的前中后序遍历思想 3.求二叉树节点的个数及叶子节点的个数及第k层节点数 5.查找二叉树值为x的节点 6.二叉树的层序遍历 7.二叉树的深度 ...
- 数据结构初阶——链式二叉树
目录 树概念及结构 树的概念 树的表示 二叉树概念及结构 概念 特殊二叉树 二叉树的性质 二叉树链式结构及实现 二叉树的简单创建 二叉树的前序遍历 二叉树中序遍历与二叉树后序遍历 求二叉树节点个数 求 ...
- 链式二叉树的代码实现
目录 二叉树的存储结构: 链式二叉树的实现 1.二叉树的结构体类型 2.创建二叉树结点 代码实现: 3.二叉树的前序遍历 测试结果: 4.二叉树的中序遍历 测试结果: 5.二叉树的后序遍历 测试结果: ...
- 数据结构树状结构链式二叉树
链式二叉树: 遍历: 前序 中序 后序 下面是具体实现: 1.前序遍历: void PreTraverseLTree(struct LTNode *pT) {if(pT!=NULL){cout< ...
- 【C】二叉树--顺序结构(详解堆的实现,topK排序、堆排)、和链式结构(链式结构的遍历、链式结构常见递归操作以及练习题)
本章我们将引入树的概念并详细介绍二叉树.我们会在介绍顺序二叉树基础上,进一步介绍堆以及堆的实现,并以此为依据详解topK排序.堆排等问题:然后我们会介绍链式二叉树的实现以及各种操作.最后,我们也会给出 ...
- 二叉树的链式结构递归遍历实现
二叉树的链式结构递归遍历实现 1. BinTree.h文件 #ifndef__BINTREE_H__ #define__BINTREE_H__ #include<stdio.h> ...
- 将顺序二叉树存储序列转化为链式存储序列-c语言
将顺序二叉树存储序列转化为链式存储序列 - 题目描述: 将给定顺序二叉树存储序列转换为链式二叉树存储序列显示 char data[13] = {'0','A','B','C','0','D','E', ...
- 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)
假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...
最新文章
- 小白阶段如何学习Web前端知识
- [OS复习]进程管理3
- 开源项目GoodView点赞效果
- 简单shell:删除五日之前的日志文件
- SLF4JLoggerContext cannot be cast to LoggerContext
- CAD答辩周 -- 与自己相关的几场
- mysql在linux下的完整安装
- 3-4 文件读写例子(2)
- Adhesive框架系列文章--报警服务使用实践
- go mock mysql_go sqlmocks的使用
- html input提交按钮无法使用,无法找到并单击提交按钮使用mshtml.HTMLInputElement
- POM文件详解(如何组织POM文件)
- 迪文屏程序制作。通讯
- 无器械健身锻炼全身肌肉的方法
- 罗米欧与朱丽叶(徐志摩)
- 几种经典的下肢力量练习方式
- PON光模块相关知识
- 浪漫的星空,表白的弹窗,python制作
- Stm32f103的can模块配置和调试
- 弄懂这56个Python使用技巧,掌握Python高效开发