给定一个无向的树,希望你能求出这颗树字典序最小
先序遍历。
你可以任意选择一个点作为起点,当你在一个节点时,你只能访问你未被访问的邻居节点。
你可以自由地安排访问邻居节点的顺序。当你访问完一个节点所有的邻居结点之后,将当前节
点的标号写入当前的先序遍历序列的尾部。
下面给出访问过程的伪代码,G 用来储存一个节点的邻居:
1 vector<int> G[N] , order ;
2 bool v i s [N] ;
3 void dfs ( i n t u) {
4 vis [ u ] = true ;
5 for ( int v : G[ u ] ) {
6 i f ( v i s [ v ] ) continue ;
7 dfs( v ) ;
8 }
9 order . push_back (u ) ;
10 }
其中 order 则为所求的先序遍历序列。你需要求出可能的字典序最小的先序遍历序列。
RT,同时想问 为什么先序遍历是先遍历子树再输出
做的时候看错题目了()