Tree

基本认知Basic

树 和 图

树中不能出现环

计算机的树 一般往下长

结点相关名词

Depth

结点深度

距离根结点有几条边

Level

结点层级

距离根结点的边数 + 1

Height

树的高度

深度最高的结点深度

树 和 二叉树

二叉树

Full Binary Tree

每个 Branch 节点 都有 两个 Leaf

构建

使用链结构构建

一般树

1 2 3
public class Node { public List<Node> subNodes;}

二叉树

1 2 3 4
public class Node { public Node leftNodes; public Node rightNodes;}

一般树 追溯父节点

1 2 3 4
public class Node { public List<Node> subNodes; public Node parent;}

使用数组构建

案例

[1, 2, 3, _, _, 4, 5]
[1, 2, 3, 4, 5, 6, _]
[1, 2, 3, 4, 5, 6, 7]

找关系

parent: (index - 1) / 2
left child: index * 2 + 1
right child: index * 2 + 2

遍历

前序Preorder

一般树

第一次访问的时候记录

二叉树

第一次访问的时候记录

中序Inorder

一般树

没有中序遍历

二叉树

左子节点访问完了,再记录

后序Postorder

一般树

所有子节点都访问完了,再记录

二叉树

所有子节点都访问完了,再记录

逐层

等同 BFS 顺序

ZZAX 微信公众

文档一更新,立刻告诉你