一、扩展二叉树
为了建立一棵二叉树,将二叉树中的每个结点的空指针引出一个虚结点,其指定值如‘#’,以标识符为空,把这样处理过的二叉树称为原二叉树的扩展二叉树。
二、建立过程
首先输入根节点,若输入的是一个“#”字符,则表明该二叉树为空树,即root=NULL;否则依次输入的字符应付值给root->data,之后依次递归建立它的左子树和右子树。
三、实验代码
第一种方式:
void CreateBiTree(BiTree *root){
char ch;
ch = getchar();
if(ch == '#'){
root = NULL;
}
else{
*root =(BiTree)malloc(sizeof(BTNode));
*(root)->data = ch;
CreateBiTree(&((*root)->Lchild));
CreateBiTree(&((*root)->Rchild));
}
}
第二种方式:
BiTNode* CreateBiTree(BiTNode *root){
char ch;
ch = getchar();
if(ch == '#'){
return NULL;
}
else{
root =(BiTNode*)malloc(sizeof(BTNode));
root->data = ch;
root->Lchild = CreateBiTree(root->Lchild);
root->Rchild = CreateBiTree(root->Rchild);
}
return root;
}