ホームページ > バックエンド開発 > PHPチュートリアル > PHPでバイナリツリーアルゴリズムを実装する方法

PHPでバイナリツリーアルゴリズムを実装する方法

墨辰丷
リリース: 2023-03-27 08:24:01
オリジナル
1566 人が閲覧しました

この記事では主に 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))"

以上がこの記事の全内容です、皆様のお役に立てれば幸いです。学ぶ。

関連する推奨事項:

phpの構築バイナリツリーアルゴリズムサンプルコード

Python実装バイナリツリーアルゴリズムとkmpアルゴリズムの例

PHPはKMPアルゴリズムを実装

以上がPHPでバイナリツリーアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート