이 기사의 내용은 PHP가 재귀를 사용하여 이진 트리를 만드는 방법에 대한 것입니다. 이는 특정 참조 값을 가지고 있으므로 도움이 될 수 있습니다.
1. 노드가 원래 인쇄된 곳을 제외하고는 노드를 생성하고 노드에 값을 할당하는 작업으로 변경된다는 점을 제외하고는 재귀의 원리를 사용합니다
if(ch=='#'){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)->rchild);}
2. 사전 주문 순회: 루트 노드를 먼저 방문합니다. , preorder 왼쪽 하위 트리를 탐색하고 오른쪽 하위 트리를 preorder로 탐색합니다. 중간 및 왼쪽
3. 이진 트리의 각 노드의 널 포인터를 값이 특정 값인 가상 노드로 유도하고 처리된 이진을 처리합니다. tree는 순회 시퀀스를 통해 이진 트리를 결정하기 위해 이진 트리를 확장한 것입니다
<?php class BinTree{ public $data; public $left; public $right; } //前序遍历生成二叉树 function createBinTree(){ $handle=fopen("php://stdin","r"); $e=trim(fgets($handle)); if($e=="#"){ $binTree=null; }else{ $binTree=new BinTree(); $binTree->data=$e; $binTree->left=createBinTree(); $binTree->right=createBinTree(); } return $binTree; } $tree=createBinTree(); var_dump($tree); A B # D # # C # # object(BinTree)#1 (3) { ["data"]=> string(1) "A" ["left"]=> object(BinTree)#2 (3) { ["data"]=> string(1) "B" ["left"]=> NULL ["right"]=> object(BinTree)#3 (3) { ["data"]=> string(1) "D" ["left"]=> NULL ["right"]=> NULL } } ["right"]=> object(BinTree)#4 (3) { ["data"]=> string(1) "C" ["left"]=> NULL ["right"]=> NULL } }
위 내용은 재귀를 사용하여 PHP에서 이진 트리를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!