题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef

#include <stdio.h>
#include <stdlib.h>
typedef char BTDatatype;
typedef struct BTreeNode
{
    BTDatatype data;
    struct BTreeNode* left;
    struct BTreeNode* right;
}BTNode;
BTNode* BuyBTNode(BTDatatype x)
{
    BTNode* node=(BTNode*)malloc(sizeof(BTNode));
    if(node==NULL)
    {
        perror("malloc fail");
        return NULL;
    }
    node->data=x;
    node->left=NULL;
    node->right=NULL;
    return node;
}
BTNode* TreeCreate(BTDatatype* arr, int* pi)
{
    if(arr[*pi]=='#')
    {
        (*pi)++;
        return NULL;
    }
    BTNode* root = BuyBTNode(arr[(*pi)++]);
    root->left=TreeCreate(arr,pi);
    root->right=TreeCreate(arr,pi);
    return root;
}
void InOrder(BTNode* root)
{
    if(root==NULL)
    {
        return;
    }
    InOrder(root->left);
    printf("%c ",root->data);
    InOrder(root->right);
}
int main() 
{
    BTDatatype arr[100];
    int i=0;
    scanf("%s",arr);
    BTNode* root = TreeCreate(arr, &i);
    InOrder(root);
    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务