vlambda博客
学习文章列表

【每日上机】二叉树遍历

加入抓码公益社群,解锁更多计算机考研干货
抓码22计算机考研QQ总群:625590924
22考研咨询 | 码哥(JNUmagekaoyan)
或 码哥02(magevip2)



二叉树遍历


题目描述


编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 


例如如下的先序遍历字符串:

ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。


输⼊描述:


输入包括1行字符串,长度不超过100。

输出描述:


可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。

示例1


输入


abc##de#g##f###

输出


c b e g d f a


#include <iostream>#include <string>using namespace std;string str;int i;struct TreeNode{ char val; struct TreeNode *lchild, *rchild; TreeNode(char c) :val(c), lchild(NULL), rchild(NULL) {}};TreeNode* createTree() {    char c = str[i++]; if (c == '#') return NULL; TreeNode *root = new TreeNode(c); root->lchild = createTree(); root->rchild = createTree(); return root;}void inOrderTraversal(TreeNode* root) { if (!root) return; inOrderTraversal(root->lchild); cout << root->val << " "; inOrderTraversal(root->rchild);}int main() { while (cin >> str) { i = 0; TreeNode *root = createTree(); inOrderTraversal(root); cout << endl; } return 0;}

【每日上机】二叉树遍历


 抓码计算机考研qq群 

总群

625590924‍‍
调剂群
951508829
广大 1143982604
暨大 1071137230
广工 1093732052
华工 428389734
深大 729770764
浙大 978938582
厦大 1125268501
中大 921801084
南航 281118241
华农 515681663
重邮 736197896
北邮 1126650806
南邮 1109929146
广外 976231252
东北大学 1128523098
华南师大 476784448
南昌大学 923249141


【每日上机】二叉树遍历


给个“在看”支持一下我