二叉树的三种遍历
1.后序遍历
void PreOrder(BinaryTree *ptr)
{
if (ptr != NULL)
{
PreOrder(ptr->leftchild);
PreOrder(ptr->rightchild);
printf("%c ", ptr->data);
}
}
核心思想:先访问左孩子,再访问右孩子,然后访问根节点。
2.先序遍历
void PastOrder(BinaryTree *ptr)
{
if (ptr != NULL)
{
printf("%c ", ptr->data);
PastOrder(ptr->leftchild);
PastOrder(ptr->rightchild);
}
}
核心思想:先访问根节点,再访问左右结点
3.中序遍历
void InOrder(BinaryTree *ptr)
{
if (ptr != NULL)
{
InOrder(ptr->leftchild);
printf("%c ", ptr->data);
InOrder(ptr->rightchild);
}
}
核心思想:先访问左孩子,再访问根节点,最后访问右孩子。