井号法创建二叉树

井号法创建二叉树.C

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//二叉树结点
typedef struct BINARYNODE
{
        char ch;
        struct BINARYNODE*lchild;
        struct BINARYNODE*rchild;
}BinaryNode;
void Recursion(BinaryNode*root)
{
        if (root == NULL)
        {
               return;
        }
        printf("%c",root->ch);
        Recursion(root->lchild);
        Recursion(root->rchild);
}
BinaryNode*CreateBinaryTree()
{
        fflush(stdin);//显示等待输入  刷新
        char ch;
        scanf("%c",&ch);
        
        BinaryNode*node;
        if (ch == '#')
        {
               node = NULL;
        }
        else
        {
               node = (BinaryNode*)malloc(sizeof(BinaryNode));
               node->ch = ch;
               node->lchild = CreateBinaryTree();
               node->rchild = CreateBinaryTree();
        }
        return node;
}
int main()
{
        //创建树
        BinaryNode*root = CreateBinaryTree();
        //打印树
        Recursion(root);
        return EXIT_SUCCESS;
}
posted @ 2022-02-13 12:51  黑马金牌编程  阅读(87)  评论(0)    收藏  举报