本文转载自Poll的笔记,有关红黑树的内容还可参考skywang12345,有关二叉树的面试算法总结可以参考面试算法之二叉树操作集锦,C++面试笔记–树
数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格精准,但求简单易懂。
二叉树
二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。
二叉树的定义:
二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有 $2^{i-1}$ 个结点;深度为k的二叉树至多有 $2^{k-1}$ 个结点;对任何一棵二叉树T,如果其终端结点数为$n_0$,度为2的结点数为$n_2$,则$n_0=n_2+1$。