数据结构--根据输入字符串建立二叉树并遍历

二叉树建立并遍历

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

#include
#include
typedef struct Node{char val;struct Node* left;struct Node* right;
}Node;
Node* creatTree(char* str, int* idx){if(str[*idx] != '#'){Node* root = (Node*)malloc(sizeof(Node));root->val = str[*idx];++(*idx);root->left = creatTree(str, idx);++(*idx);root->right = creatTree(str, idx);return root;}else{return NULL;}
}
void midPrint(Node* root){if(root){midPrint(root->left);printf("%c ",root->val);midPrint(root->right); }
}
int main(){char str[101] = {0};scanf("%s", str);int idx = 0;Node* root = creatTree(str, &idx);midPrint(root);printf("\n");return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部