表示方法:树形表示法、嵌套集合表示法、凹行表示法、广义表表示法
度为0的是叶子节点或者终端节点
度不为0的是非终端节点或者分支节点或者内部节点
根节点称为开始节点
数的存储结构:双亲表示法、孩子链表法、孩子兄弟表示法
树常用遍历:前序遍历和后序遍历
森林常用遍历:前序遍历和后序遍历
前序遍历一个树等于前序遍历该树对应的二叉树,后序遍历一棵树等于中序遍历该树对应的二叉树。
公式及推导过程:
满k叉树编号为i的节点第一个孩子的编号 j 满足 (j=(i-1) * k +2;)
推导过程
设: 节点 i 处在该 m 叉树的第 h层, (h = 1, 2, 3...)则 前 h - 1 层共有 $N1 = frac{k^{h-1}-1}{k-1} $ 个节点
同理 前 h 层共有 (N2 =frac{k^{h} - 1}{k -1}) 个节点
显然 i 是第 h 层的 (i - N1) 个节点, 即 节点i 有 (i- N1 - 1 ) 个左兄弟
故节点i 的第一个孩子 j 有 ((i- N1 - 1)* k) 个左兄弟
由此可得 j在第h + 1 层中的位置为 $ (i - N1 -1) * k +1$
那么 节点j 在整棵满 k叉树的编号为 $ N2 +(i - N1 -1)*k + 1$
即 $ j =frac{k^{h} - 1}{k -1} +(i -frac{k^{h-1} -1}{k-1} -1)*k + 1$
整理可得: (j=(i-1) * k +2)
推导:满k叉树编号为i的节点第j个孩子的编号 j 满足 (j=(i-1) * k +1+j);