http://geeksforgeeks.org/?p=6633, . , , ( ). , , , node ( ), , . , , node, . , ( , ):
int internal_path_length(key_iter& cur_node, key_iter end, int level, key max_key) {
if (cur_node == end) return 0;
key cur_key = *cur_node;
if (cur_key > max_key) return 0;
++cur_node;
int len1 = internal_path_length(cur_node, end, level + 1, cur_key);
int len2 = internal_path_length(cur_node, end, level + 1, max_key);
return len1 + len2 + level;
}
:
key_iter i = preorder.begin();
internal_path_length(i, preorder.end(), 0, mk);
mk , .