1. 术语
先看图
节点的度:指该节点的子树个数。如节点A的度是3,节点C的度是1,而节点F的度是0.
树的度:树中所有节点的度的最大值。如上图中树的度是3.
叶子:度为0 的节点。如节点K,L,F,G,M,I,J.
父亲和儿子:节点B是节点E和F的父亲,节点E和F是是节点B的儿子。
兄弟:同一父亲的儿子之间互称为兄弟。如节点H,I,J是兄弟。
一个节点的祖先:是指从根节点到该节点的路径上的所有节点。如节点M的祖先是节点A,D,H。
一个节点的后代:是指这个节点的子树中包含的所有节点。如节点B的后代是节点E,F,K,L.
节点的层:规定根节点为第一层,以后依次增1.
树的高度(深度):是树中所有节点的最大层数。如图中树的高度是4.
2.树的存储表示
1)列表存储表示:树除了上图的表示方法之外,还有许多方法表示一棵树,例如可以用列表的形式表示,在这种表示方法中,每一颗子树都是一个列表,上图使用列表表示方法如下图所示。
(A(B(E(K, L), F), C(G), D(H(M) , I, J)))
注意:根节点的信息放在最前面,随后是该节点的子树组成的列表。
2)左儿子——右兄弟存储表示:由于对固定大小的节点操作比较容易,因此我们要研究大小固定的存储表示方法。上图中的树采用左儿子——右兄弟存储表示如下图所示。
3)二叉树存储表示:把左儿子——右兄弟的存储表示形式顺时针旋转45度即可得到二叉树存储表示(左儿子——右儿子)。上图旋转后的到二叉树如下图所示。
下图给出一个树——>左儿子—右兄弟——>二叉树的例子