首页 > 编程知识 正文

创建二叉树的代码java(php如何用二叉树,怎样使用PHP排序二叉树)

时间:2023-05-05 10:51:59 阅读:121090 作者:1337

这次介绍使用PHP对二叉树进行排序的方法。 使用PHP对二叉树进行排序时的注意事项是什么? 以下是实战案例。 一起看看吧。

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

基本上没有提供任何概念和定义。 首先,我建议你简要理解本文提供的一些概念来看本文。

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

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

二叉树:左边的子节点的值比父节点的值小,右边的子节点的值比父节点的值大.

几个概念:根节点

叶节点

左边的树

右边的孩子树

中序扫描

超前遍历

最后的遍历

二叉树搜索

中序遍历:首先遍历左子树,遍历自节点,遍历右节点。 遍历的结果是排序的结果//created by曲朋维

//对二叉树进行排序

//完成以下任务。

//1 .在相应的位置插入节点

//2 .按中序遍历该二叉树

//3 .找到这个二叉树的极值

//4 .查找特定值

类节点{

公共$ key、$left、$right;

publicfunctionconstruct($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;

}

//中序遍历

//$树- mid sort (;

//print_r($tree-sortarr;

//查找极值

//$tree-findMin (;

//$tree-findMax (;

//查找特定值

$树查找(7;

echo '

';

$三叉查找(11;

执行结果:找到7

没有这个!

看了这篇报道的事例,我相信你掌握了方法。 更棒。 请关注php中文网的其他相关文章。

请阅读:

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