我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,转载请注明出处
这篇主要说下如何在内存中生成一棵二叉链表的二叉树
扩展二叉树 前序遍历为AB#D##C## 代码实现生成二叉树
/* 按前序输入二叉树中结点的值(一个字符) */
/* #表示空树,构造二叉链表表示二叉树T。 */
void CreateBiTree(BiTree *T)
{
TElemType ch;
/* scanf("%c",&ch); */
ch=str[treeIndex++];
if(ch=='#')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
if(!*T)
exit(OVERFLOW);
(*T)->data=ch; /* 生成根结点 */
CreateBiTree(&(*T)->lchild); /* 构造左子树 */
CreateBiTree(&(*T)->rchild); /* 构造右子树 */
}
}
这种建立二叉树的方法,其实就是递归的思想 就是在原来改在打印结点的位置,改成了生成结点,给结点赋值