ホームページ  >  記事  >  バイナリツリーを実装するにはいくつかの方法があります

バイナリツリーを実装するにはいくつかの方法があります

藏色散人
藏色散人オリジナル
2020-06-29 09:55:043262ブラウズ

バイナリ ツリーを実装するには、次の 2 つの方法があります: 1. シーケンシャル ストレージ。シーケンス テーブルを使用してバイナリ ツリーを格納することを指し、完全なバイナリ ツリーにのみ適用されます。2. チェーン ストレージ。バイナリ ツリーをリンク モードで格納し、それぞれのノード自体のデータを格納することに加えて、ノードは 2 つのポインタ フィールド lchild と rchild も設定する必要があります。

バイナリツリーを実装するにはいくつかの方法があります

#バイナリ ツリー

5 つの基本形式: 空のバイナリ ツリー、ルート ノードのみを持つバイナリ ツリー、ルート ノードのみを持つバイナリ ツリー ノードと左サブツリー TL を持つバイナリ ツリー、ルート ノードと右サブツリー TR のみを持つバイナリ ツリー、ルート ノードを持つバイナリ ツリー、左サブツリー TL と右サブツリー TR

その他のバイナリ ツリー: スキューバイナリ ツリー、フル バイナリ ツリー、パーフェクト バイナリ ツリー

実装方法: シーケンシャル ストレージ、チェーン ストレージ

バイナリ ツリーのシーケンシャル ストレージとは、シーケンシャル テーブル (配列) の使用を指します。 ) バイナリ ツリーを保存します。順次ストレージは完全なバイナリ ツリーにのみ適用されることに注意してください。言い換えれば、シーケンシャル テーブルを使用して保存できるのは、完全なバイナリ ツリーのみです。したがって、通常の二分木を順次保存したい場合には、事前に通常の二分木を完全な二分木に変換する必要があります。

バイナリ ツリーの各ノードには最大 2 つの子があります。リンク モードでバイナリ ツリーを保存する場合、ノード自体のデータを保存することに加えて、各ノードはノードの左の子と右の子をそれぞれ指す 2 つのポインタ フィールド lchild と rchild も設定する必要があります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。