Maison  >  Article  >  développement back-end  >  Une explication sur la façon d'imprimer un arbre binaire de haut en bas en PHP

Une explication sur la façon d'imprimer un arbre binaire de haut en bas en PHP

jacklove
jackloveoriginal
2018-06-30 17:46:251437parcourir

Cet article présente principalement la méthode d'impression des arbres binaires de haut en bas en PHP, impliquant les compétences opérationnelles liées à la traversée des arbres binaires PHP. Les amis dans le besoin peuvent s'y référer

L'exemple de cet article raconte. l'implémentation de PHP de haut en bas. Méthode pour imprimer l'arbre binaire. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Problème

Imprimez chaque nœud de l'arbre binaire de haut en bas , nœuds au même niveau Imprimez de gauche à droite.

Solution

Chaque couche de l'arbre est imprimée de gauche à droite, les sous-arbres gauche et droit du nœud doivent donc être stockés , car premier entré, premier sorti, utilisez donc la file d'attente.

Code de mise en œuvre

/*class TreeNode{
  var $val;
  var $left = NULL;
  var $right = NULL;
  function __construct($val){
    $this->val = $val;
  }
}*/
function PrintFromTopToBottom($root)
{
  $queueVal = array();
  $queueNode = array();
  if($root == NULL)
    return $queueVal;
  array_push($queueNode, $root);
  while(!empty($queueNode)){
    $node = array_shift($queueNode);
    if($node->left != NULL)
      array_push($queueNode,$node->left);
    if($node->right != NULL)
      array_push($queueNode,$node->right);
    array_push($queueVal,$node->val);
  }
  return $queueVal;
}

Vous pourriez ressentir Articles d'intérêt :

méthode php d'envoi de données personnalisées via les astuces header_php

php utilise ob_start() pour effacer la sortie et la sortie sélective Explication de la méthode

Explication de la méthode de fusion de deux listes chaînées triées en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn