二叉树的创建与递归遍历,代码如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
char data;
struct Node *lch;
struct Node *rch;
}BiNode, *BiTree;
void Creat1(BiTree *T);
//二叉树的创建,第一种方法 BiTree Creat2()
//二叉树的创建,第二种方法 void Preorder(BiTree T);
//先序遍历 void Inorder(BiTree T);
//中序遍历 void Postorder(BiTree T);
//后续遍历
int main(void)
{
BiTree T;
Creat1(&T);
//二叉树的创建,第一种方法
// T = Creat2();
//二叉树的创建,第二种方法
Preorder(T);
//先序遍历
printf("\n");
Inorder(T);
//中序遍历
printf("\n");
Postorder(T);
//后续遍历
return 0;
}
void Creat1(BiTree *T)
//二叉树的创建,第一种方法
{
char c;
printf("请输入数据:");
c = getchar();
flushall();
if(c != '$')
{
(*T) = (BiNode *)malloc(sizeof(BiNode));
(*T)->data = c;
Creat(&((*T)->lch));
Creat(&((*T)->rch));
}
else
{
(*T) = NULL;
}
}
BiTree Creat2()