#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Node{
int val;
struct Node* left;
struct Node* right;
}Node;
Node* createTree(char *s);
void preOrder(Node *root);
int main(){
//空节点用#表示的序列
char s[15]="123###4#5##";
Node* tree=createTree(s);
preOrder(tree);
return 0;
}
int where=0;//字符串消费到哪个位置了
Node* createTree(char *s){
//s为前序序列
Node *root;
if(where==strlen(s)){
return NULL;
}
char ch=s[where];
if(ch=='#'){
where++;
return NULL;
}else{
root=(Node *)malloc(sizeof(Node));
root->val=s[where++]-'0';
root->left=createTree(s);
root->right=createTree(s);
}
return root;
}
void preOrder(Node *root){
if(root==NULL){
return ;
}
printf("%d ",root->val);
preOrder(root->left);
preOrder(root->right);
}
扩展二叉树建立(#表示空节点)
最新推荐文章于 2024-07-24 20:44:05 发布