"Tree 명령"의 두 판 사이의 차이

jjuiddong
이동: 둘러보기, 찾기
(새 문서: '''#tree 명령어''' static으로 선언된 변수는 작동하지 않는다. (버그 인듯) '''#tree 용법''' #tree ( head: head_expr left : left_expr right : right_exp...)
 
 
55번째 줄: 55번째 줄:
 
         )
 
         )
 
     )
 
     )
 +
}
 +
 +
== '''#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
 +
)
 +
)
 
  }
 
  }

2013년 3월 31일 (일) 16:00 기준 최신판

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

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