树的基本介绍
怎么样去选择合适的数据结构:
- 需要存储什么类型的数据
- 访问数据所执行的操作
- 使用的内存
- 是否容易实现
树:经常被表示层次数据的一种数据结构(根在顶部,分支向下生长)
术语:root(根)、children(孩子)、Parent(父母)、 sibling(兄弟[同一双亲])、leaf(叶子[没有孩子的节点])、cousin(叔叔)
树的属性:当一颗树有N个节点时,有N-1个链接
深度:从X节点到根节点的路径长度(向上)
高度:从X节点到一个叶节点的最长路径(向下)
当我们遍历一棵树时,只能从一个方向进行遍历
二叉树特点:
- 每个节点最多有两个孩子
- 严格二叉树(每个节点都有两个孩子)
- 完全二叉树(除了最后一层之外的其他层被完全填充并且所有节点都向左对齐)
- 它的节点N=2^(h+)-1
- 二叉搜索树(搜索、插入、删除一个元素时间将正比于树的高度)