BiTree createBiTree() { //在此处填入代码 /*----------begin-------------*/ BiTree* T; DataType ch; cin >> ch; if (ch == '#') { T = NULL; } else { T = new struct node; T->data = ch; T->lchild = createBiTree(); T->rchild = createBiTree(); } return *T; /*----------end-------------*/ }
时间: 2023-10-06 11:06:57 浏览: 80
BiTree树的源代码
这段代码是用递归方式创建二叉树的代码。具体来说,它首先从标准输入中读取一个字符 ch,如果这个字符是“#”,则表示这个节点为空,返回 NULL。否则,它创建一个新的节点,并将 ch 赋值给这个节点的数据域。然后,它递归调用 createBiTree() 函数来分别创建这个节点的左子树和右子树,并将它们分别赋值给这个节点的左孩子和右孩子。最后,它返回这个节点的指针。
需要注意的是,这段代码中存在一些问题。首先,它创建的二叉树是一个局部变量,函数返回后会被销毁,因此需要使用动态内存分配来创建二叉树。其次,返回值应该是指针类型,而不是节点类型。最后,这段代码没有对输入错误进行处理,如果输入的字符不是“#”或合法的数据,程序会出错。
阅读全文