用C语言写void InOrder(BiTree Tree)//中序遍历 void creat(BiTree &Tree)//构建二叉树
时间: 2023-07-16 16:12:01 浏览: 54
下面是用C语言实现的中序遍历函数和构建二叉树函数的代码:
```
//定义二叉树结构体
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
//中序遍历函数
void InOrder(BiTree Tree) {
if (Tree) {
InOrder(Tree->lchild);
printf("%c ", Tree->data);
InOrder(Tree->rchild);
}
}
//构建二叉树函数(先序遍历输入)
void creat(BiTree &Tree) {
char ch;
scanf("%c", &ch);
if (ch == '#') {
Tree = NULL;
} else {
Tree = (BiTree)malloc(sizeof(BiTNode));
Tree->data = ch;
creat(Tree->lchild);
creat(Tree->rchild);
}
}
```
在构建二叉树时,我们采用先序遍历的方式输入二叉树的结点,如果输入的结点值为`#`,表示该结点为空,否则就创建一个新的结点,并将该结点的左右子树递归构建。在中序遍历时,我们按照“左子树-根结点-右子树”的顺序遍历二叉树,并输出每个结点的值。