void first_visit(node *current)//前序遍历
{
printf("%d ",current->entry);
if (current->left != NULL) first_visit(current->left);
if (current->right != NULL) first_visit(current->right);
}
void last_visit(node *current)//后序遍历
{
if (current->left != NULL) first_visit(current->left);
if (current->right != NULL) first_visit(current->right);
printf("%d ",current->entry);
}
void middle_visit(node *current)//中序遍历
{
if (current->left != NULL) first_visit(current->left);
printf("%d ",current->entry);
if (current->right != NULL) first_visit(current->right);
}
/*
从代码来看,很好的对应了每种遍历方式的名称,前序遍历是先输出当前结点,再尝试访问左结点和右结点,就是输出语句的位置在之前,中间和之后
*/
{
printf("%d ",current->entry);
if (current->left != NULL) first_visit(current->left);
if (current->right != NULL) first_visit(current->right);
}
void last_visit(node *current)//后序遍历
{
if (current->left != NULL) first_visit(current->left);
if (current->right != NULL) first_visit(current->right);
printf("%d ",current->entry);
}
void middle_visit(node *current)//中序遍历
{
if (current->left != NULL) first_visit(current->left);
printf("%d ",current->entry);
if (current->right != NULL) first_visit(current->right);
}
/*
从代码来看,很好的对应了每种遍历方式的名称,前序遍历是先输出当前结点,再尝试访问左结点和右结点,就是输出语句的位置在之前,中间和之后
*/
本文详细介绍了二叉树的三种基本遍历方法:前序遍历、中序遍历和后序遍历,并提供了对应的C语言实现代码。每种遍历方式的特点在于输出节点的时机不同,从而形成各自独特的访问顺序。
3万+

被折叠的 条评论
为什么被折叠?



