#号创建法
即把所有叶子没有数据的都为#
输出结果:
代码实现
#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 *CreateBinaryNodeTree()
{
//清楚缓冲区
fflush(stdin);
char ch;
scanf("%c",&ch);
BinaryNode *node;
BinaryNode *lChild,*rChIld;
if(ch=='#')
{
node=NULL;
}
//否泽拷贝左树
else
{
lChild=CreateBinaryNodeTree();
rChIld=CreateBinaryNodeTree();
node=(BinaryNode *)malloc(sizeof(BinaryNode));
node->ch=ch;
node->lChild=lChild;
node->rChild=rChIld;
}
return node;
}
int main(void)
{
BinaryNode *node=CreateBinaryNodeTree();
Recursion(node);
system("pause");
}