54 7 C:\Users\26250\Desktop\dev\5.cpp [Error] cannot convert 'P {aka node}' to 'P* {aka node*}' in assignment
时间: 2024-01-19 15:37:19 浏览: 108
这个错误是因为在赋值时将一个指针赋给了一个非指针类型的变量。在你提供的代码中,有三个不同的版本,但是它们都有相同的问题。在这些代码中,函数CreateBiTree的参数是一个指向指针的指针,而在函数内部,你尝试将一个指针赋给一个非指针类型的变量。这是不允许的。
为了解决这个问题,你需要将函数CreateBiTree的参数改为指向指针的指针,并在函数内部使用间接引用操作符(*)来访问指针指向的内容。这样,你就可以正确地将指针赋给相应的变量。
下面是修改后的代码示例:
```c
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode {
TElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void CreateBiTree(BiTree *T) {
TElemType ch;
scanf("%c", &ch);
if (ch == '#') {
*T = NULL;
} else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = ch;
CreateBiTree(&((*T)->lchild));
CreateBiTree(&((*T)->rchild));
}
}
void traverse(BiTree r) {
if (r == NULL) {
return;
}
printf("%c", r->data);
traverse(r->lchild);
traverse(r->rchild);
}
int main() {
BiTree root;
CreateBiTree(&root);
traverse(root);
printf("\n");
return 0;
}
```
这样修改后的代码应该能够解决你遇到的问题。希望对你有帮助!
#### 引用[.reference_title]
- *1* *2* *3* [C语言创建二叉树过程中遇到的一些问题](https://blog.csdn.net/u014285517/article/details/50440829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文