标签:har 长度 表示 pre clu 层遍历 main stream 就是
首先回忆一下树的术语
树的遍历
#include<iostream>
using namespace std;
//树,定义左右子树
struct Node
{
int lch = -1; //左节点
int rch = -1; //右节点
//现在都是-1,表示现在什么都不指向
};
bool vis[29];
bool isnotroot[29];
Node tree[29];
char s[5];
void build(int p,int l,int r)
{
vis[p]=true;
if(l>=0)
{
tree[p].lch=l;
vis[l]=true;
isnotroot[l]=true;
}
if(r>=0)
{
tree[p].rch=r;
vis[r]=true;
isnotroot[r]=true;
}
}
void pre_order(int r)
{
if(r<0)
{
return ;
}
//递归
cout<<char(r+‘a‘);
pre_order(tree[r].lch);
pre_order(tree[r].rch);
//四种遍历方法,就是改变这三句的顺序
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s;
build(s[0]-‘a‘,s[1]-‘a‘,s[2]-‘a‘);
}
//输出,因为只有26个字母,直接输出树的根节点即可
for(int i=0;i<26;i++)
{
if(vis[i]&&!isnotroot[i])
{
pre_order(i);
break;
}
}
cout<<endl;
return 0;
}
标签:har 长度 表示 pre clu 层遍历 main stream 就是
原文地址:https://www.cnblogs.com/serendipity-my/p/12663972.html