2024年11月14日 星期四

前序遍歷

 class TreeNode:

    def __init__(self, value):

        self.value = value

        self.left = None

        self.right = None


def insert_node(root, value):

    if root is None:

        return TreeNode(value)

    if value < root.value:

        root.left = insert_node(root.left, value)

    else:

        root.right = insert_node(root.right, value)

    return root


def build_tree(values):

    root = None

    for value in values:

        root = insert_node(root, value)

    return root


# 前序遍歷函數

def preorder_traversal(node, result):

    if node is not None:

        # 處理當前節點

        result.append(node.value)

        # 遞迴遍歷左子樹

        preorder_traversal(node.left, result)

        # 遞迴遍歷右子樹

        preorder_traversal(node.right, result)

    return result


# 建立二元樹

values = [6, 3, 5, 7, 9, 10, 8, 1, 4, 2]

tree_root = build_tree(values)


# 獲取後序遍歷結果

preorder_result = preorder_traversal(tree_root, [])


# 輸出結果

print("前序遍歷結果:", preorder_result)


# result

# 前序遍歷結果: [6, 3, 1, 2, 5, 4, 7, 9, 8, 10]

沒有留言:

張貼留言