知识点
左子右兄弟 表示法(leaf-child right-sibling representation)
- 结点信息
- 结点u的父结点 parent属性
- 结点u最最侧的子结点 left属性
- 结点u右侧紧邻的兄弟结点 right属性
- 性质
- 不存父结点的就是根
- 不存在u.left的结点就是叶(leaf)
- 不存在u.right的结点为最右侧子结点
问题链接
问题内容
输入每个结点和其所有子节点 ,输出每个结点的父结点、深度、结点类型(根,内部结点、叶)和所有子结点.
思路
参考左子右兄弟表示法和具体代码实现,首先构建有根树,同时找出根结点(parent == NIL),从根节点开始往子结点遍历同时记录结点的深度到Depth数组中;根据性质判断结点的种类;从最左侧的结点往右遍历即可得到当前结点的所有子结点。
代码