题目描述
先将根结点放入一对圆括号中,然后把它的子树按由左而右的顺序放入括号中,而对子树也采用同样方法处理:同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。例如下图可写成如下形式
(a(b,c,d,e))
a
/ | |
b c d e
现在给定一个多叉树的括号表示法,要求你创建多叉树,并按层序序列输出。
输入
多叉树的括号表示法:字符串
输出
层序输出多叉树
简单投机法:
//未完成树的建立,仅仅根据遇到一个左括号所出现的字母层数加一
//遇到右括号所出现的字母层数减一来实现输出代码
#include<iostream>
using namespace std;
int main()
{
string read;
cin>>read;
string *save =new string [20];
int level =0;
int n=0;
for(int i=0; i<read.size(); i++)
{
if(read[i]=='(')
{ level++;
n++;
}
else if(read[i]==')')
level--;
else if(read[i]!=',')
save[level]+=read[i];
}
for(int i=1;i<=n;i++)
cout << save[i] ;
}
建立完整树结构法在之后会给出