要素をBSTに挿入するには、以下の手順を実行します:
- 挿入する値を持つ新しいノードを作成します。
- BSTのルートノードからスタートします。
- 挿入する値が現在のノードの値よりも小さい場合、左のサブツリーに進みます。
- 挿入する値が現在のノードの値よりも大きい場合、右のサブツリーに進みます。
- サブツリーが存在しない(左または右の子が存在しない)ノードに到達した場合、新しいノードをその位置に挿入します。
- 新しいノードを挿入したら、挿入操作を終了します。
以下は、PythonでのBSTへの要素の挿入を行う簡単なコード例です:
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def insert(root, value):
if root is None:
return Node(value)
if value < root.value:
root.left = insert(root.left, value)
else:
root.right = insert(root.right, value)
return root
# BSTのルートノードを作成
root = None
# 要素を挿入
root = insert(root, 5)
root = insert(root, 2)
root = insert(root, 7)
root = insert(root, 1)
root = insert(root, 3)
# BSTの内容を表示
def inorder_traversal(node):
if node:
inorder_traversal(node.left)
print(node.value)
inorder_traversal(node.right)
inorder_traversal(root)
このコードでは、Nodeクラスを定義し、挿入操作を行うinsert
関数を実装しています。insert
関数は再帰的に呼び出され、適切な位置に新しいノードが挿入されます。最後に、inorder_traversal
関数を使用してBSTの内容を表示しています。
この方法を使えば、簡単に要素をBSTに挿入することができます。