Tree 명령
jjuiddong
#tree 명령어
static으로 선언된 변수는 작동하지 않는다. (버그 인듯)
#tree 용법 #tree ( head: head_expr left : left_expr right : right_expr size : size_expr skip: skip_expr ) : disp_expr
의사언어로 표현하면 다음과 같다. (트리를 중위순회 한다.)
$e = current object count = 0 traverse( head_expr, count ) function traverse( node, count ) { ++count $e = node if ($e == NULL) return; if (count > size_expr) exit // 종료 if ($e == skip_expr) exit // 종료 traverse( left_expr, count ) display disp_expr traverse( right_expr, count ) }
// sample struct TreeNode { TreeNode *left, *right; int value; }; struct TreeTest { TreeNode *head; int size; }; TreeTest { children ( #( #tree ( head : $e.head, left : left, right : right, size : $e.size ) : &$e ) ) }
#tree visualizer 예제
std::map<*>|std::multimap<*>|std::set<*>|std::multiset<*>{ preview ( #( "[", $e._Mysize, "](", #tree( head: $e._Myhead->_Parent, skip: $e._Myhead, left: _Left, right: _Right, size: $e._Mysize ) : $e._Myval, ")" ) ) children ( #( #([comp] : $e.comp), #tree( head: $e._Myhead->_Parent, skip: $e._Myhead, left: _Left, right: _Right, size: $e._Mysize ) : $e._Myval ) ) }