010 树(Tree)

树(Tree)是一种层级的(hierarchical)数据结构。由节点(Node)和边(Edge)组成。

术语:

  • 根节点(Root Node):最高层级节点。
  • 双亲节点(Parent Node):上下层关系中的直接上层节点。
  • 孩子节点(Child Node):上下层关系中的直接下层节点。
  • 兄弟节点(Sibling Node):同一双亲节点内,节点之间处于同一层关系。
  • 祖先节点(Ancestor Node):节点处于它的上层(直接或间接)。
  • 子孙节点(Descendant Node):节点处于它的下层(直接或间接)。
  • 度(Degree):拥有孩子节点的数量。
  • 树的度(Degree of Tree):树内各节点度的最大值。
  • 分支节点(Branch Node):度大于0的节点。
  • 叶子节点(Leaf Node):度等于0的节点。
  • 距离(Distance):两个节点间的最短路径中边的数量。
  • 深度(Depth):根节点到它的距离。
  • 广度(Breadth):某一层级的节点数量。
  • 树的高度(Height of Tree):最大深度 + 1,也就是顾名思义的高度。
  • 树的广度(Breadth of Tree):叶子节点的数量。
  • 子树(Subtree):树的一部分也是树。
  • 森林(Forest):很多棵树,但是互不相交(disjoint)。

树的实现

  • 链式实现:使用节点对象表示树中的每个节点,每个节点包含数据和指向孩子节点或双亲节点的引用。
  • 顺序实现:使用列表构建树结构,通过下标关系来表示节点之间的连结关系。

树的遍历

  • 广度优先遍历(Breadth First Search (BFS)):从根节点出发,沿着树的宽度遍历树的节点,先访问根节点,然后依次按层级访问同一层的节点,再移动到下一层。BFS可以找到从根节点到目标节点的最短路径。
  • 深度优先遍历(Depth First Search (DFS)):从根节点出发,尽可能深的搜索树的分支,当一个分支遍历完后再回溯到上一个节点,接着遍历下一个分支。DFS有三种顺序:前序、中序、后序。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容