php中关于完全二叉树的定义方法详解(普通树的定义与C++实现)
生活随笔
收集整理的這篇文章主要介紹了
php中关于完全二叉树的定义方法详解(普通树的定义与C++实现)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇文章主要介紹了PHP完全二叉樹定義與實現方法,簡單描述了完全二叉樹的概念并結合實例形式給出了完全二叉樹的定義、節點查找、添加、設置、打印等相關操作技巧,需要的朋友可以參考下
本文實例講述了PHP完全二叉樹定義與實現方法。分享給大家供大家參考,具體如下:
若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。
PHP代碼實現(暫時實現添加節點、層次遍歷節點,刪除節點后續更新)
<?php
class Node{
public $value;
public $leftNode;
public $rightNode;
}
/* 找到空節點 */
function findEmpytNode($node, $parent = null){
if(empty($node->value)){
return $node;
}else{
if(empty($node->leftNode->value)){
return $node->leftNode;
}else if(empty($node->rightNode->value)){
return $node->rightNode;
}else{
if(empty($parent) || $node->value == $parent->rightNode->value){
return findEmpytNode($node->leftNode, $node);
}else{
return findEmpytNode($parent->rightNode, $node);
}
}
}
}
/* 添加節點 */
function addNode($node, $value){
$emptyNode = findEmpytNode($node);
setNode($emptyNode, $value);
}
/* 設置節點 */
function setNode($node, $value){
$node->value = $value;
$node->leftNode = new Node();
$node->rightNode = new Node();
}
/* 打印 */
function printTree($node, $parent = null){
if(empty($node->value)) return ;
echo $node->leftNode->value;
echo $node->rightNode->value;
if(empty($parent) || $node->value == $parent->rightNode->value){
printTree($node->leftNode, $node);
}else{
printTree($parent->rightNode, $node);
}
}
$head = new Node();
setNode($head, 1);
addNode($head, 2);
addNode($head, 3);
addNode($head, 4);
addNode($head, 5);
addNode($head, 6);
printTree($head);
登錄后復制
以上就是php中關于完全二叉樹的定義方法詳解的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的php中关于完全二叉树的定义方法详解(普通树的定义与C++实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用命令行工具mc连接SAP云平台Leo
- 下一篇: 快手主页怎么放微信号(快手短视频App快