c语言,用前序输入的方法,建立二叉树的代码
时间: 2023-06-02 18:08:07 浏览: 51
我可以为您提供一份使用前序输入建立二叉树的C语言代码,请参考如下:
```
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{ //定义二叉树节点结构体
char val;
struct Node *left;
struct Node *right;
}Node;
//建立二叉树函数
Node* buildTree(){
char ch;
scanf("%c",&ch); //读入节点值
if(ch=='#') return NULL; //节点值为#,表示该节点为空
Node *root=(Node*)malloc(sizeof(Node)); //申请新节点
root->val=ch; //将节点值存入新节点的val域
root->left=buildTree(); //递归建立左子树
root->right=buildTree(); //递归建立右子树
return root; //返回当前节点指针
}
int main(){
printf("请输入前序遍历序列:");
Node *root=buildTree(); //建立二叉树
printf("建立二叉树成功!\n");
}
```
此代码能够根据输入的前序遍历序列建立二叉树。在程序中,节点的值使用字符类型表示,#表示空节点。建立二叉树的过程是递归进行的,首先读入当前节点的值,如果为#就返回空指针,否则申请新节点并将节点值存入该节点的val域中,然后递归建立左子树和右子树。最终返回根节点指针。