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
		)
	)
}
개인 도구
이름공간

변수
행위
둘러보기
도구모음