Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何平衡我的二叉树_C_Algorithm_Binary Tree - Fatal编程技术网

C 如何平衡我的二叉树

C 如何平衡我的二叉树,c,algorithm,binary-tree,C,Algorithm,Binary Tree,我已经有了一个工作的二叉树数据库。不幸的是,它需要有自我平衡的能力。我不想重写整个过程,我只想包含一个平衡树的函数。有算法或想法吗?寻找像avl红黑这样的平衡树寻找像avl红黑这样的平衡树avl和红黑树都是自平衡树。 可以遍历原始树并在这些树中插入节点。 之后,您可以保留新树并丢弃原始树。AVL和红黑树是自平衡树。 可以遍历原始树并在这些树中插入节点。 之后,您可以保留新树并丢弃原始树。我发现斯坦福教程非常有用 查看wiki中的示例 另外,尝试播放网络上可用的AVL树动画,例如 或 或 我发

我已经有了一个工作的二叉树数据库。不幸的是,它需要有自我平衡的能力。我不想重写整个过程,我只想包含一个平衡树的函数。有算法或想法吗?

寻找像avl红黑这样的平衡树

寻找像avl红黑这样的平衡树

avl和红黑树都是自平衡树。 可以遍历原始树并在这些树中插入节点。
之后,您可以保留新树并丢弃原始树。

AVL和红黑树是自平衡树。 可以遍历原始树并在这些树中插入节点。 之后,您可以保留新树并丢弃原始树。

我发现斯坦福教程非常有用

查看wiki中的示例

另外,尝试播放网络上可用的AVL树动画,例如

我发现斯坦福的教程非常有用

查看wiki中的示例

另外,尝试播放网络上可用的AVL树动画,例如


AVL和红黑树是平衡二叉树。我有一个AVL树的实现。看。它支持插入和搜索。删除尚未实施

AVL和红黑树是平衡二叉树。我有一个AVL树的实现。看。它支持插入和搜索。删除尚未实施

带来很多结果。选一个。它不仅仅是“二叉树”,它是“二叉搜索树”。@ArunSaha:你为什么这么说?OP没有说元素已经排序。@James McNellis:你是对的,但是我从OP对“平衡”树的要求推断出了这一点。我想不出为什么BT需要平衡(旋转的基础是什么,等等),除非是BST。不过我可能错了。带来很多结果。选一个。它不仅仅是“二叉树”,它是“二叉搜索树”。@ArunSaha:你为什么这么说?OP没有说元素已经排序。@James McNellis:你是对的,但是我从OP对“平衡”树的要求推断出了这一点。我想不出为什么BT需要平衡(轮换的基础是什么,等等),除非是BST。我可能错了。我认为OP的想法是保留所有代码,只添加一个平衡常规二叉树的函数。我认为OP的想法是保留所有代码,只添加一个平衡常规二叉树的函数。