typedef struct TreeNode {
ElemType data;
struct TreeNode* LeftChild, * RigthChild;
}TreeNode, * BitTree;
void CreatePreOrderTree(TreeNode*& T) {
ElemType ch;
cin >> ch;//AB#D##C##
if (ch == '#')//说明这个位置是空结点
T = NULL;
else {
T = new TreeNode;//为结点开辟内存空间
T->data = ch;//生成结点
CreatePreOrderTree(T->LeftChild);//构建左子树
CreatePreOrderTree(T->RigthChild);//构建右子树
}
}
main(){
TreeNode* p;
CreatePreOrderTree(p);
}
请问各位 这个void CreatePreOrderTree(TreeNode*& T)函数的参数为什么不是void CreatePreOrderTree(TreeNode* T)这样的,还带了个&,指针p的类型明明是TreeNode*
类型的啊 可是为什么到了形参哪里就变成了TreeNode*& T这个样子,这个&是按照引用来理解还是按照地址来理解呢?按照地址来理解的话&和*应该是一对互逆运算符啊。要是按照引用来理解好像也不太对把?
HUH函数