typedef struct fnode { char father[10]; char wife[10]; char son[10]; }FamType; typedef struct node { ElemType data; struct node* lchild, * rchild; }BTNode; typedef struct tnode { char name[10]; struct tnode* lchild, * rchild; }Btree; void PreOrder(BTNode* b) { {if (b != NULL) printf("%c", b->data); PreOrder(b->lchild); PreOrder(b->rchild); } } Btree* FindNode(BTree*b, char xml) { BTree* p; if (b == NULL) return (NULL); else { if (strcmp(b->name, xm) == 0 return (b); else { p = FindNode(b->1child, xm); if (p != NULL) return (p); else return (FindNode(b->rchild, xm)); } } }改错
时间: 2024-02-14 17:15:02 浏览: 76
zhsy.rar_InitStack_pop_typedef struct st
代码中存在一些错误,下面是我找到的错误:
1. 第一个结构体的名称应该是 FamType 而不是 fnode。
2. 第二个结构体声明中的 ElemType 没有给出定义。
3. PreOrder 函数中缺少了一个右括号。
4. FindNode 函数中的参数 BTree 应该是 Btree。
5. FindNode 函数中的参数 xml 在函数体中被误写成了 xm。
6. FindNode 函数中的第四个 if 语句缺少右括号。
下面是改错后的代码:
```
typedef struct FamType {
char father[10];
char wife[10];
char son[10];
} FamType;
typedef struct BTNode {
char data;
struct BTNode* lchild, * rchild;
} BTNode;
typedef struct Btree {
char name[10];
struct Btree* lchild, * rchild;
} Btree;
void PreOrder(BTNode* b) {
if (b != NULL) {
printf("%c", b->data);
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
Btree* FindNode(Btree* b, char name) {
Btree* p;
if (b == NULL)
return (NULL);
else {
if (strcmp(b->name, name) == 0)
return (b);
else {
p = FindNode(b->lchild, name);
if (p != NULL)
return (p);
else
return (FindNode(b->rchild, name));
}
}
}
```
阅读全文