이 글은 주로 PHP에서 이진 트리 알고리즘을 구성하는 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
트리는 데이터 구조에서 여전히 매우 중요합니다. 여기서 이진 트리는 대괄호 표기법으로 표현됩니다. 먼저 이진 트리 노드 클래스를 작성합니다:
// 二叉树节点 class BTNode { public $data; public $lchild = NULL; public $rchild = NULL; public function __construct($data) { $this->data = $data; } }
그런 다음 이진 트리를 구성합니다:
function CreateBTNode(&$root,string $str) { $strArr = str_split($str); $stack = []; $p = NULL; // 指针 $top = -1; $k = $j = 0; $root = NULL; foreach ($strArr as $ch) { switch ($ch) { case '(': $top++; array_push($stack, $p); $k = 1; break; case ')': array_pop($stack); break; case ',': $k = 2; break; default: $p = new BTNode($ch); if($root == NULL) { $root = $p; } else { switch ($k) { case 1: end($stack)->lchild = $p; break; case 2: end($stack)->rchild = $p; break; } } break; } } }
여기에 이진 트리를 인쇄하는 함수를 작성합니다(순서 순회):
function PrintBTNode($node) { if($node != NULL) { PrintBTNode($node->lchild); echo $node->data; PrintBTNode($node->rchild); } }
실행 결과:
문자열 입력
"A(B(C,D),G(F))"
위는 이 글의 전체 내용입니다. 모든 분들께 도움이 되기를 바랍니다. 학습.
python은 이진 트리 알고리즘 및 kmp 알고리즘 예제
위 내용은 PHP에서 이진 트리 알고리즘을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!