n叉树的先根遍历c语言
以下是一个用C语言实现二叉树先根遍历的示例代码:
```c
#include
typedef struct BiNode {
char data;
struct BiNode *lchild, *rchild;
}BiNode;
BiNode *CreateBiTree(BiNode *T) {
char data;
scanf("%c", &data);
if((data=='#')||(data=='\n')) {
T = NULL;
} else {
T = (BiNode *)malloc(sizeof(BiNode));
if(T==NULL) {
printf("memory error");
exit(1);
}
T->data = data;
T->lchild = CreateBiTree(T->lchild);
T->rchild = CreateBiTree(T->rchild);
return T;
}
}
void PreOrderTraverse(BiNode *T) {
if(T==NULL) {
return;
} else {
printf("%c ", T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
c语言struct用法例子 }
}
int main() {
BiNode *T = NULL;
T = CreateBiTree(T);
printf("先序遍历: \n");
PreOrderTraverse(T);
printf("\n");
return 0;
}
```
在这个示例代码中,我们定义了一个`BiNode`结构,用于存储二叉树的节点信息。然后,我们使用`CreateBiTree`函数创建一棵二叉树,并使用`PreOrderTraverse`函数对其进行先根遍历。在`PreOrderTraverse`函数中,我们使用递归的方式遍历二叉树的每个节点,并输出节点的值。最后,我们在`main`函数中创建一棵二叉树,并调用`PreOrderTraverse`函数对其进行遍历。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论