首页 > 编程知识 正文

二叉树排序结果(php二叉树 排列,PHP排序二叉树基本功能实现方法示例)

时间:2023-05-05 18:00:50 阅读:121092 作者:1422

本文举例阐述了PHP排序二叉树基本功能的实现方法。 分享仅供参考。 具体来说,请关注cs的代笔。 有用!

在此,展示了对二叉树节点的插入、中顺扫描、极值的搜索、特定值的搜索进行排序的功能

基本上没有提供任何概念或定义建议。 首先,让我们简要了解一下本文提供的一些概念,看看本文

其实,我只是简单地提供了代码,评论也很少。 辛苦了

在二叉树的计算机科学中,二叉树是每个节点最多有两个子树的树结构。

二叉树左侧子节点的值小于父节点的值,右侧子节点的值大于父节点的值

一些概念

根节点

叶节点

左边的树

右边的孩子树

中序扫描

超前遍历

最后的遍历

二叉树搜索

中序扫描

首先遍历左子树,遍历自节点,遍历右节点的结果是排序的结果

created by曲朋维

对二叉树进行排序

完成以下任务

1在相应位置插入节点

2按中序遍历这二叉树

3找出这个二叉树的极值

4查找特定值

类节点{

公共$ key、$left、$right;

公共功能_ _ construct ($ key ) )。

{

$this-key=$key;

}

}

类二进制树{

公共$根;

公共$ sortarr=[ ];

插入节点

publicfunctioninsertnode($node,$newNode ) {

if($node-key$newnode-key ) {

如果父节点小于子节点,请将其插入右侧

if(empty ) $node-right ) }

$node-right=$newNode;

}else{

$this-insertnode($node-right,$newNode );

}

}elseif($node-key$newnode-key ) {

如果父节点大于子节点,请将其插入到左侧

if(empty ) $node-left ) }

$node-left=$newNode;

}else{

$this-insertnode($node-left,$newNode );

}

}

}

publicfunctioninsert($key ) {

$newnode=newnode($key;

if(empty($this-root ) ) ) )。

$this-root=$newNode;

}else{

$this-insertnode($this-root,$newNode );

}

}

中序扫描

公共函数mid sort

$this-midsortnode($this-root );

}

publicfunctionmidsortnode ($ node )。

if (! empty($node ) ) }

$this-midsortnode($node-left;

array_push($this-sortarr,$node-key );

$this-midsortnode($node-right;

}

}

寻找极值

公共函数查找min

继续查找左边的树,直到左边的树节点成为叶子节点

if (! Empty($this-root ) ) }

$this-findminnode($this-root );

}

}

publicfunctionfindminnode (node $ node ) {

if (! empty($node-left ) ) }

$this-findminnode($node-left );

}else{

名为echo '的二叉树的最小值为' $node-key;

}

}

公共函数查找最大值

if (! Empty($this-root ) ) }

$this-findmaxnode($this-root );

}

}

publicfunctionfindmaxnode (node $ node ) {

if (! empty($node-right ) ) }

$this-findmaxnode($node-right;

}else{

名为echo '的二叉树的最大值为' $node-key;

}

}

搜索特定值

publicfunctionfind($val=' ' ) {

if (! empty($val ) ) }

$this-findnode($this-root,$val );

}

}

publicfunctionfindnode (node $ node,$val ) {

if($node-key==$val ) {

echo '找到了' $val ';

}elseif($node-key$val ) {

如果父节点的值大于要搜索的值,请搜索其左侧的子树

if (! empty($node-left ) ) }

$this-findnode($node-left,$val );

}else{

echo '没有那种东西!' ;

}

}elseif($node-key$val ) {

if (! empty($node-right ) ) }

$this-findnode($node-right,$val );

}else{

echo '没有那种东西!' ;

}

}

}

}

$tree=new BinaryTree (;

插入节点

$nodes=Array(8、3、10、1、6、14、4、7、13 );

Foreach($nodesas$value ) {

$tree-insert($value;

}

中序扫描

$tree-midSort (;

print_r($tree-sortarr;

寻找极值

$tree-findMin (;

$tree-findMax (;

搜索特定值

$树查找(7;

echo 'br ';

$三叉查找(11;

执行结果:

找到了7

没有这个!

对PHP相关内容感兴趣的读者请参考本网站的专稿“《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、0103010”

希望本文所述对大家的PHP编程有帮助。

您可能感兴趣的文章PHP ClassObject -- PHP自我排序二叉树的详细分析基于PHP的二叉树深度优先和广度优先扫描方法基于PHP的线索二叉树和二叉树扫描方法基于PHP的二叉树扫描算法详细解基于PHP的二叉树结构算法示例PHP 能的详细解【包含二叉树检索树的平衡树和红黑树】从PHP上打印二叉树的方法基于PHP非递归算法扫描二叉树的操作例获取PHP二叉树镜像的方法判断PHP二叉树是否对称的方法PHP二叉树的深度优先扫描(前

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。