概念:
树是一种数据结构,由边连接而成(java中使用引用来表示边),树的顶层只有一个节点,然后向下发散,类似颠倒的树
树的术语
1.路径:一个节点到另一个节点之间经过节点的顺序排列
2.根:树顶端的节点
3.父节点,子节点:树形结构中位于上层的节点为父节点,下面的称为子节点
4.叶子节点:没有子节点的节点
5.层:从根开始有几代
6.二叉树:如果树中每个节点最多有两个子节点,则称为二叉树
7.二叉搜索树:一个节点的左子节点的关键字值小于这个节点;右子节点的关键子值大于等于这个节点
树形结构对比数组和链表
数组:有序数组的使用二分查找时间复杂度是O(logN),但是插入或删除一个数据时,要移动位于后面的数据项,数组不太适用于有很多删除和插入操作
链表:插入和删除比较快,但是遍历数据要从头开始,查找很慢
树可以结合这两者的优点
图示