BUPT OJ 中序遍历树

来源:互联网 发布:西南交通大学网络缴费 编辑:程序博客网 时间:2024/06/14 05:36

水题。

开始看错,当成按照每个节点代表的字符顺序访问了,后来改完就可以了。

#include<iostream>#include<cstring>#include<string>using namespace std;char func[101];bool relation[100][100]={false};bool visited[100]={false};string result;string temp;void dfs(int pos,int n){int son[100];int size=0;visited[pos]=true;for(int j=0;j<n;j++){if(j==pos)continue;if(relation[pos][j]==true&&!visited[j]){son[size++]=j;}}if(size>0){dfs(son[0],n);temp+=func[pos];for(int j=1;j<size;j++){dfs(son[j],n);}}else if(size==0)temp+=func[pos];}int main(){int n,a,b,t;while(cin>>n)   {   result="";   temp="";   cin>>func;   t=n;   t--;   memset(relation,0,sizeof(relation));   //cout<<relation[99][99];   while(t--)   {   cin>>a>>b;   relation[a][b]=true;   relation[b][a]=true;      }int it=-1;for(int i=0;i<n;i++)     {     memset(visited,0,sizeof(visited));      dfs(i,n);     // cout<<"以"<<i<<"("<<func[i]<<")"<<"为根"<<temp<<endl;      if(i==0){  result=temp;it=i;}      else if(result>temp){  result=temp;it=i;}      temp="";     }     cout<<result<<endl;}}


0 0
原创粉丝点击