二叉树前序遍历的步骤如下:
- 访问根节点
- 以前序遍历左子树
- 以前序遍历右子树
算法
第1步:重复第2步到第4步,同时TREE!= NULL
第2步:写入 TREE -> DATA
第3步:PREORDER(TREE -> LEFT)
第4步:PREORDER(TREE -> RIGHT)
[循环结束]
第5步:结束
C语言实现的函数
void pre_order(struct treenode *tree)
{
if(tree != NULL)
{
printf("%d",tree→ root);
pre-order(tree→ left);
pre-order(tree→ right);
}
}
示例
使用先序遍历方式遍历以下二叉树 -
- 使用的遍历方案是前序遍历,因此,要打印的第一个元素是
18
。 - 递归遍历左子树。 左子树的根节点是
211
,打印它并向左移动。 - 左边是空的,因此打印右侧子项并移动到根的右侧子树。
- 因此,
20
是根的右子树,打印它并向左移动。 由于左子树是空的,因此向右移动并打印那里存在的唯一元素,即190
。 - 最后,打印顺序为:
18
,211
,90
,20
,190
。