编译没问题,但是输入一个二叉树无法遍历(可能输入也没输入进去)
求指点哪里有问题?
#include<iostream>
using namespace std;
struct BiNode{
char data;
BiNode *left;
BiNode *right;
};
typedef BiNode* BiTree;
void CreateTree(BiTree &T) {
char ch;
cin >> ch; // 读取用户输入的字符
if (ch == '#') T = nullptr; // 建立空树
else {
// 生成新的根节点
T = new BiNode;
T->data = ch;
// 递归地创建左子树和右子树
CreateTree(T->left);
CreateTree(T->right);
}
}
void InOrderTraverse(BiTree T) {
if (T == nullptr) {
cout<<"#";
return;
}
else {
// 递归地访问左子树和右子树
InOrderTraverse(T->left);
cout << T->data; // 中序
InOrderTraverse(T->right);
}
}
int main()
{
BiTree t1;
CreateTree(t1);
InOrderTraverse(t1);
}