美文网首页
二叉树的前中后序遍历

二叉树的前中后序遍历

作者: Sweet丶 | 来源:发表于2020-10-01 22:36 被阅读0次
typedef struct TreeNode{
    struct TreeNode *left;
    struct TreeNode *right;
    char val;
}BiTreeNode, *binTree;

// 按照前序遍历的方式输入,遇到没有左孩子和右孩子用空格代替
void createTree_(binTree *root){
    char input;
    scanf("%c", &input);
    if (input == ' ') {
        root = NULL;
        return;
    }
    *root = (struct TreeNode *)malloc(sizeof(struct TreeNode));
    (*root)->val = input;
    createTree_(&(*root)->left);
    createTree_(&(*root)->right);
}


// 前序遍历
void PreOrderTraversalBinTree(BiTreeNode *root){
    if (root == NULL) {  return;  }
    printf("%c", root->val);
    PreOrderTraversalBinTree(root->left);
    PreOrderTraversalBinTree(root->right);
}

// 中序遍历
void InOrderTraversalBinTree(BiTreeNode *root){
    if (root == NULL) { return;  }
    InOrderTraversalBinTree(root->left);
    printf("%c", root->val);
    InOrderTraversalBinTree(root->right);
    
}
//后序遍历
void TailOrderTraversalBinTree(BiTreeNode *root){
    if (root == NULL) { return;  }
    TailOrderTraversalBinTree(root->left);
    TailOrderTraversalBinTree(root->right);
    printf("%c", root->val);
}

+ (void)test{
    printf("请按照前序遍历方式输入二叉树:");
    binTree root = NULL;
    createTree_(&root);
    
    printf("二叉树前序遍历的结果:");
    PreOrderTraversalBinTree(root);

    putchar('\n');
    printf("二叉树中序遍历的结果:");
    InOrderTraversalBinTree(root);
    
    putchar('\n');
    printf("二叉树后序遍历的结果:");
    TailOrderTraversalBinTree(root);
    putchar('\n');
}

相关文章

  • 2018-09-07

    二叉树的前中后序遍历 二叉树由左子树、右子树和根组成(L, R,D) 前,中,后序遍历是针对根节点来说的。DLR ...

  • 二叉树的遍历方式

    二叉树的遍历方式有多种,前序遍历,中序遍历,后序遍历,层序遍历,在这里来介绍一下前、中、后序遍历。 前序遍历:根左...

  • 递归调用中的递归序

    从刚开始接触递归,到接触二叉树递归遍历,简单几行代码就能实现前中后序遍历,而且,前中后序遍历的代码基本一致,觉得好...

  • leetcode 144 145 94

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

  • 二叉树的遍历与创建

    二叉树的遍历 分为:前序,中序,后序,层序。 前/中/后序,是根据跟节点遍历的前后顺序来定义的。 前序遍历 从根节...

  • goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序

    goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序遍历 层序遍历) 前序遍历 中序遍历 后序遍历 代...

  • 二叉树的各种遍历方法

    二叉树的常用遍历方法 二叉树常用的遍历方法包括: 前序遍历 中序遍历 后序遍历 层次遍历 而前三种遍历的具体实现上...

  • 二叉树的一些基本知识总结

    学了学二叉树,这里说说怎样遍历二叉树.四种方式:前序遍历,中序遍历,后序遍历,层次遍历. 主要说说递归的遍历方法前...

  • POJ 2255 Tree Recovery(根据前中序遍历,重

    题意:给出二叉树的前序遍历和中序遍历,求后序遍历。 NO.1:无需重建二叉树,可直接求出后序遍历结果。 NO.2 ...

  • leecode刷题(30)-- 二叉树的后序遍历

    leecode刷题(30)-- 二叉树的后序遍历 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历。 示例:...

网友评论

      本文标题:二叉树的前中后序遍历

      本文链接:https://www.haomeiwen.com/subject/mdpvuktx.html