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 + -
显示快捷键?