首页 > 代码库 > 二叉树先序构建+(先序,中序,后序遍历)
二叉树先序构建+(先序,中序,后序遍历)
/* * 样例 DBA,,C,,E,GF,,, */ #include<cstdio> #include<cstdlib> #include<cmath> #include<map> #include<queue> #include<stack> #include<vector> #include<algorithm> #include<cstring> #include<string> #include<iostream> #define ms(x,y) memset(x,y,sizeof(x)) const int MAXN=1000+10; const int INF=1<<30; using namespace std; struct Node { char ch; Node *left, *right; }; void BuildTree(Node *&root) { Node *s = (Node *)malloc(sizeof(Node)); s->left = NULL; s->right = NULL; scanf("%c", &s->ch); if(s->ch == ','){ free(s); return; } root = s; BuildTree(root->left); BuildTree(root->right); } void PreOrder(Node *root) { if(root == NULL) return; printf("%c", root->ch); PreOrder(root->left); PreOrder(root->right); } void InOrder(Node *root) { if(root == NULL) return; InOrder(root->left); printf("%c", root->ch); InOrder(root->right); } void PostOrder(Node *root) { if(root == NULL) return; PostOrder(root->left); PostOrder(root->right); printf("%c", root->ch); } int main() { freopen("in.txt","r",stdin); Node *root; BuildTree(root); PreOrder(root); printf("\n"); InOrder(root); printf("\n"); PostOrder(root); printf("\n"); return 0; }
二叉树先序构建+(先序,中序,后序遍历)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。