Java中BST的级序遍历

Java中BST的级序遍历,java,binary-search-tree,breadth-first-search,Java,Binary Search Tree,Breadth First Search,我正在尝试在下面的BST上执行一个级别顺序遍历 BST bst = new BST(); int [] arr = {12, 15, 7, 3, 81, 9, 36, 23, 33, 41, 4}; for (int i = 0; i <arr.length; i++) { bst.add(arr[i]); } 这显然不是正确的BFS。我哪里出错了。我不明白为什么,考虑到您提供的元素列表,树将如下所示: 12 |- 7 (L) |- 3

我正在尝试在下面的BST上执行一个级别顺序遍历

BST bst = new BST();
    int [] arr = {12, 15, 7, 3,  81, 9, 36, 23, 33, 41, 4};
    for (int i = 0; i <arr.length; i++) {
        bst.add(arr[i]);
    }

这显然不是正确的BFS。我哪里出错了。

我不明白为什么,考虑到您提供的元素列表,树将如下所示:

12
 |- 7 (L)
    |- 3 (L)
        |- 4 (R)
    |- 9 (R)
 |- 15 (R)
    |- 81 (R)
        |- 36 (L)
            |- 23 (L)
                |- 33 (R)
            |- 41 (R)
或者更好的视觉效果:

    12
   /  \
  7    15
 / \     \
3   9     81
 \       /
  4    36
      /  \
    23    41
      \
       33

注意这不是一个平衡的二叉搜索树。BST只需创建第一个节点
12
(您提供的第一个元素)。而
12
将保留根。小于的所有元素都被向左排序(并开始生长它们自己的根等)。

您的遍历函数是正确的。您可能需要检查此联机工具

它还提供了插入、删除和查找过程的可视化。这是生成的树:


在我看来,输出看起来像是正确的BFS。想拍照吗?
12
 |- 7 (L)
    |- 3 (L)
        |- 4 (R)
    |- 9 (R)
 |- 15 (R)
    |- 81 (R)
        |- 36 (L)
            |- 23 (L)
                |- 33 (R)
            |- 41 (R)
    12
   /  \
  7    15
 / \     \
3   9     81
 \       /
  4    36
      /  \
    23    41
      \
       33