函数题:二叉树 - 5. 输入二叉树
请编写函数,输入二叉树。
#### 函数原型
```c
// 输入二叉树
void BinTreeInput(TNODE **root);
// 输入二叉树(内部递归)
static void BinTreeInput1(TNODE **root);
```
说明:`root`为指向二叉树或子树的根指针的指针。
- BinTreeInput 函数是供外部用户使用的函数。
- BinTreeInput1 函数是供内部使用的递归函数。
提示:
- BinTreeInput 在输入之前应先调用 BinTreeClear 清空二叉树以确保不发生内存泄漏,然后再调用 BinTreeInput1 输入二叉树。
- BinTreeInput1 输入二叉树时按先根遍历顺序输入结点的值,用特殊字符 '#' 来表示空树。
在头文件 *BinTree.h* 添加函数声明。
*BinTree.h*
```c
#ifndef _BinTree_h_
#define _BinTree_h_
......
// 输入二叉树
void BinTreeInput(TNODE **root);
#endif
```
在程序文件 *BinTree.c* 中声明内部递归函数,并添加这两个函数的定义。
*BinTree.c*
```
#include
#include
#include "BinTree.h"
// 输入二叉树(内部递归)
static void BinTreeInput1(TNODE **root);
......
/* 你提交的代码将被嵌在这里 */
```
#### 裁判程序
*main.c*
```c++
#include
#include "BinTree.h"
int main()
{
TNODE *r;
BinTreeCreate(&r);
BinTreeInput(&r);
......
BinTreeDestroy(&r);
return 0;
}
```

#### 输入样例
```
EIBJ##H###DF#A##G#C##
```
答案:若无答案欢迎评论
#### 函数原型
```c
// 输入二叉树
void BinTreeInput(TNODE **root);
// 输入二叉树(内部递归)
static void BinTreeInput1(TNODE **root);
```
说明:`root`为指向二叉树或子树的根指针的指针。
- BinTreeInput 函数是供外部用户使用的函数。
- BinTreeInput1 函数是供内部使用的递归函数。
提示:
- BinTreeInput 在输入之前应先调用 BinTreeClear 清空二叉树以确保不发生内存泄漏,然后再调用 BinTreeInput1 输入二叉树。
- BinTreeInput1 输入二叉树时按先根遍历顺序输入结点的值,用特殊字符 '#' 来表示空树。
在头文件 *BinTree.h* 添加函数声明。
*BinTree.h*
```c
#ifndef _BinTree_h_
#define _BinTree_h_
......
// 输入二叉树
void BinTreeInput(TNODE **root);
#endif
```
在程序文件 *BinTree.c* 中声明内部递归函数,并添加这两个函数的定义。
*BinTree.c*
```
#include
#include
#include "BinTree.h"
// 输入二叉树(内部递归)
static void BinTreeInput1(TNODE **root);
......
/* 你提交的代码将被嵌在这里 */
```
#### 裁判程序
*main.c*
```c++
#include
#include "BinTree.h"
int main()
{
TNODE *r;
BinTreeCreate(&r);
BinTreeInput(&r);
......
BinTreeDestroy(&r);
return 0;
}
```

#### 输入样例
```
EIBJ##H###DF#A##G#C##
```
答案:若无答案欢迎评论