东莞房产网站建设,广告公司名字 三个字,常用来做网站首页的文件名,上海传媒公司有哪些前序序列创建二叉树 题目输入格式输出格式输入样例#xff08;及其对应的二叉树#xff09;输出样例 代码 题目
编一个程序#xff0c;读入用户输入的一串先序遍历字符串#xff0c;根据此字符串建立一个二叉树#xff08;以二叉链表存储#xff09;。 例如如下的先序遍… 前序序列创建二叉树 题目输入格式输出格式输入样例及其对应的二叉树输出样例 代码 题目
编一个程序读入用户输入的一串先序遍历字符串根据此字符串建立一个二叉树以二叉链表存储。 例如如下的先序遍历字符串 ABC##DE#G##F### 其中“#”表示的是空格代表一棵空树。然后再对二叉树进行中序遍历输出遍历结果。
输入格式
多组测试数据每组测试数据一行该行只有一个字符串长度不超过100。
输出格式
对于每组数据 输出二叉树的中序遍历的序列每个字符后面都有一个空格。 每组输出一行对应输入的一行字符串。
输入样例及其对应的二叉树
abc##de#g##f###
输出样例
c b e g d f a
代码
#includeiostream
#includestring
using namespace std;typedef struct treenode
{char val;struct treenode* left;struct treenode* right;
}treenode;treenode* createnode(char a)
{treenode* newnode new treenode;if (newnode nullptr)return nullptr;newnode-left nullptr;newnode-right nullptr;newnode-val a;return newnode;
}treenode* createtree(string a, int* index)
{treenode* head nullptr;if ((*index) a.size() a[*index] ! #){head createnode(a[*index]);(*index);head-left createtree(a, index);(*index);head-right createtree(a, index);}return head;
}
void inderoder(treenode* head)
{if (nullptr head){return;}inderoder(head-left);cout head-val ;inderoder(head-right);
}
int main()
{string s;while (cin s){int index 0;treenode* head createtree(s, index);inderoder(head);cout endl;}
}