二叉树的前序、中序、后序遍历

  • 前序遍历:先输出根节点,然后遍历左子树,最后遍历右子树
  • 中序遍历:先遍历左子树,然后输出根节点,最后遍历右子树
  • 后序遍历:先遍历左子树,然后遍历右子树,最后输出根节点

 

  前中后所指的就是根节点所在的位置,即什么时候输出

  

 

 

  下面是代码部分

  

//树的部分
struct TreeNode
{
    int data;
    TreeNode *left;
    TreeNode *right;
};    

//前序遍历
void PreOrder(TreeNode *node)
{
  if(node != NULL)
  {
    printf("%d\n",node->data);
    PreOrder(node->left);
    PreOrder(node->right);
  }
  else
    return ;
}

//中序遍历
void InOrder(TreeNode *node)
{
  if(node != NULL)
  {
      InOrder(node->left);
      printf("%d\n",node->data);
      InOrder(node->right);
    }
    else
       return ;
}

//后序遍历
void PostOrder(TreeNode *node)
{
  if(node != NULL)
  {
    PostOrder(node->left);
    PostOrder(node->right);
    printf("%d\n",node->data);
  }
  else
    return;

}

 

posted @ 2020-09-26 22:27  青团青  阅读(399)  评论(0编辑  收藏  举报