链式存储
定义结构体
typedef struct tree
{
char data;
struct tree *Lchild,*Rchild;
}Tree;
创建二叉树(采用先序遍历创建,也可采用中序或后序遍历创建)
1.扫描字符序列,输入字符ch
2.如果ch是一个'#'字符,则表明该二叉树为空树,即T为NULL;否则执行以下操作:
- 申请一个节点空间
- 将ch赋给T->data
- 递归创建T的左子树
- 递归创建T的右子树
void CreateTree(Tree *&T) //先序遍历创建二叉树
{
char ch;
scanf(" %c",&ch); //输入数据
if(ch=='#')
T=NULL; //ch=='#',节点的度为0或1时
else
{
T = (Tree*)malloc(sizeof(Tree));
T->data = ch;
CreateTree(T->Lchild);
CreateTree(T->Rchild);