幻影忍者前情提要
这是一棵二叉树,现在,我们要对它进行遍历 <( ̄︶ ̄)>
前序遍历
顺序
先根节点,再左节点,再右节点
实现
如果树为空,返回,否则:
-
访问根节点
-
若根节点有左孩子,前序遍历左子树
-
若根节点有右孩子,前序遍历右子树
所以,让我们来实现一下该树的前序遍历:
根节点\(1\) -> 左孩子\(2\) -> 左孩子\(4\) -> 左孩子\(5\) -> 回溯至\(4\) -> 右孩子\(6\) ->
回溯至\(4\) -> 回溯至\(2\) -> 回溯至\(1\) -> 右孩子\(3\) -> 右孩子\(7\) -> 左孩子\(8\) -> 右孩子\(9\)
输出应为: \(1,2,4,5, 6, 3 ,7 ,8, 9\)
代码
void printq(int r) {
if (r) {
printf("%c", node[r].data);
printq(node[r].lch);
printq(node[r].rch);
}
}