二叉树
二叉树,顾名思义,每个节点最多有两个叉,也就是两个子节点;分别是左子节点和右子节点。不过二叉树并不是要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。
二叉树实现
java中有两个方式实现二叉树:数组存储、链表存储
基于链表存储的树的节点可定义如下:
二叉树分类
- 满二叉树
- 完全二叉树
- 二叉搜索树
- 红黑树
二叉搜索树
二叉搜索树(Binary Search Tree,BST)又名二叉查找树,有序二叉树或者排序二叉树;是二叉树中比较常用的一种类型。
二叉查找树要求:在树中的任意一个节点,其左子树的每个节点值,都要小于这个节点的值;而右子树节点的值都大于这个节点的值。
二叉搜索树-时间复杂度分析
查找操作:O(logn)
查找操作:O(n)