ホームページ > バックエンド開発 > Python チュートリアル > Pythonのデータ構造バイナリツリー構築例

Pythonのデータ構造バイナリツリー構築例

WBOY
リリース: 2016-06-16 08:44:17
オリジナル
1760 人が閲覧しました

まず、左右のデータ フィールドと 2 つのポインター フィールドを持つバイナリ ツリー ノードを作成します。

コードをコピーします。 コードは次のとおりです。

# -*- コーディング: utf - 8 - *-

=0):
self.left = left
self.right = right
self.data = データ



コードをコピー

コードは次のとおりです:class BTree(object):
def __init__( self, root =0):
self.root = root



バイナリ ツリーを手動で作成する

コードをコピー

コードは次のとおりです。node1 = TreeNode(data=1)node2 = TreeNode( node1, 0 , 2)
node3 = TreeNode(data=3)
node4 = TreeNode(data=4)
node5 = TreeNode(node3, node4, 5)
node6 = TreeNode(node2, node5, 6 )
node7 = TreeNode(node6, 0, 7)
node8 = TreeNode(data=8)
root = TreeNode(node7, node8, 'root')

bt = BTree(root)

次のバイナリ ツリーが生成されます



コードをコピーします
コードは次のとおりです次のように: # 生成されたバイナリ ツリー
# ------------------------
# root
# 7 8
# 6
# 2 5
# 1 3 4
#
# ---------------- ------ ---



手動でノードを 1 つずつ指定するだけでなく、ユーザー入力を受け入れてバイナリ ツリー ノードを追加する create メソッドを作成することもできます。 。 。接頭辞メソッドを使用して追加します。コードは次のとおりです。


コードをコピーします

コードは次のとおりです。 # - *- コーディング: utf - 8 - *-

self.right = right
self.data = data


class BTree(object):

def __init__(self, root=0):
self.root = root

def is_empty(self):
self.root が 0 の場合:
return True
else:
return False

def create (self):
temp = input('値を入力:')
temp が '#' の場合:
return 0
treenode = TreeNode(data=temp)
self.root が 0 の場合:
self.root =treenode

treenode.left = self.create()
treenode.right = self.create()



create を使用してバイナリ ツリーを作成します



コードをコピー

コードは次のとおりです:

# 対話型インタープリターでファイルを実行します bt = BTree ()bt.create()値を入力:9
値を入力:7
値を入力:6
値を入力:2
値を入力してください:1
値を入力してください:'#'
値を入力してください:'#'
値を入力してください:'#'
値を入力してください:5
値を入力してください: 3
値を入力:'#'
値を入力:'#'
値を入力:4
値を入力:'#'
値を入力:'#'
値を入力:'#'
値を入力:8
値を入力:'#'
値を入力:'#'



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