java进阶篇--红黑树和平衡二叉树有什么区别?

数据结构属于理解一些源码和技术所必备的知识,比如要读懂 Java 语言中 TreeMap 和 TreeSet 的源码就要懂红黑树的数据结构,不然是无法理解源码中关于红黑树数据的操作代码的,比如左旋、右旋、添加和删除操作等。因此本课时我们就来学习一下数据结构的基础知识,方便看懂源码或者是防止面试中被问到。

我们本课时的面试题是,红黑树和二叉树有什么区别?

回答:

要回答这个问题之前,我们先要弄清什么是二叉树?什么是红黑树?

二叉树(Binary Tree)是指每个节点最多只有两个分支的树结构,即不存在分支大于 2 的节点,二叉树的数据结构如下图所示:

这是一棵拥有 6 个节点深度为 2(深度从 0 开始),并且根节点为 3 的二叉树。

二叉树有两个分支通常被称作“左子树”和“右子树”,而且这些分支具有左右次序不能随意地颠倒。

一棵空树或者满足以下性质的二叉树被称之为二叉查找树:

    若任意节点的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;

    若任意节点的右子树不为空,则右子树上所有节点的值均大于或等于它的根节点的值;

    任意节点的左、右子树分别为二叉查找树。

如下图所示,这就是一个标准的二叉查找树:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章