min_subtree_con_nodes.m
来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 61 行
M
61 行
function [subtree, nroot_node] = min_subtree_con_nodes(jtree, root, nodes)%min_subtree_con_nodes get the minimum subtree of tree which contains the nodesif isempty(jtree) | isempty(nodes) subtree = []; nroot_node = []; return;endrnodes = min_subtree_nodes(jtree, nodes);nea_node = nearest_node(jtree, root, nodes);node_num = length(jtree);subtree = zeros(node_num);subtree(rnodes, rnodes) = jtree(rnodes, rnodes);nroot_node = nea_node;function rnodes = min_subtree_nodes(tree, nodes)rnodes = [];if isempty(tree) | isempty(nodes) returnendrnodes = nodes(1);newnodes = neighbors(tree, nodes(1));while ~mysubset(nodes, rnodes) swapnodes = newnodes; newnodes = []; added = 0; for i=1:length(swapnodes) inode = swapnodes(i); tnodes = myunion(inode, rnodes); if mysubset(nodes, tnodes) added = 1; break; end nns = neighbors(tree, inode); add_nodes = mysetdiff(nns, tnodes); newnodes = myunion(newnodes, add_nodes); end if added rnodes = tnodes; else rnodes = myunion(rnodes, newnodes); endendfunction nea_node = nearest_node(tree, inode, nodes)if myismember(inode, nodes) nea_node = inode; return;endcs = children(tree, inode);for i = 1:length(cs) n = cs(i); nea_node = nearest_node(tree, n, nodes);end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?