Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Definitionsmethode des vollständigen Binärbaums in PHP

Detaillierte Erläuterung der Definitionsmethode des vollständigen Binärbaums in PHP

黄舟
黄舟Original
2017-10-10 09:26:481729Durchsuche

Dieser Artikel stellt hauptsächlich die Definitions- und Implementierungsmethode des vollständigen Binärbaums in PHP vor. Er beschreibt kurz das Konzept des vollständigen Binärbaums und gibt die Definition des vollständigen Binärbaums, die Knotensuche, das Hinzufügen, Festlegen, Drucken und andere damit verbundene Betriebsfähigkeiten in Form von Beispielen. Freunde können darauf verweisen

Dieser Artikel erläutert die Definition und Implementierungsmethode des vollständigen Binärbaums in PHP anhand von Beispielen. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Wenn die Tiefe des Binärbaums h ist, mit Ausnahme der h-ten Schicht, beträgt die Anzahl der Knoten in jeder anderen Schicht (1~h -1) erreicht die maximale Anzahl. Alle Knoten in Ebene h sind kontinuierlich auf der äußersten linken Seite konzentriert, was einem vollständigen Binärbaum entspricht.

PHP-Code-Implementierung (vorübergehendes Implementieren des Hinzufügens von Knoten, des hierarchischen Durchlaufens von Knoten und des Löschens von Knoten für nachfolgende Aktualisierungen)


<?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);

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Definitionsmethode des vollständigen Binärbaums in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn