@@ -70,24 +70,30 @@ mod private
7070 return format ! ( "{}{}" , left, right ) ;
7171 } ;
7272
73- let push = | stack : & mut collection_tools:: Vec < ( Self :: NodeId , isize ) > , node_id, level |
73+ let push = | stack : & mut collection_tools:: Vec < ( Self :: NodeId , isize , bool ) > , node_id, level, preorder |
7474 {
75- // println!( "push {:?} level:{}", node_id, level );
76- stack. push ( ( node_id, level ) ) ;
75+ // println!( "push {:?} level:{} preorder:{} ", node_id, level, preorder );
76+ stack. push ( ( node_id, level, preorder ) ) ;
7777 } ;
7878
79- push ( & mut stack, node_id, 0 ) ;
79+ push ( & mut stack, node_id, 0 , true ) ;
8080
81- while let Some ( ( node_id, level ) ) = stack. pop ( )
81+ while let Some ( ( node_id, level, _preorder ) ) = stack. pop ( )
8282 {
83+ // if !preorder
84+ // {
85+ // write.write_fmt( format_args!( "{}{:?}\n", prefix( level ), node_id ) )?;
86+ // continue;
87+ // }
8388
8489 if visited. insert ( node_id )
8590 {
91+ // push( &mut stack, node_id, level, false );
8692 write. write_fmt ( format_args ! ( "{}{:?}\n " , prefix( level ) , node_id ) ) ?;
8793
8894 for child_id in self . node_out_nodes ( node_id ) . rev ( )
8995 {
90- push ( & mut stack, child_id, level + 1 ) ;
96+ push ( & mut stack, child_id, level + 1 , true ) ;
9197 }
9298 }
9399 }
0 commit comments