wolffd@0: function [T, pre, post, cycle] = mk_rooted_tree(G, root) wolffd@0: % MK_ROOTED_TREE Make a directed tree pointing away from root wolffd@0: % [T, pre, post, cycle] = mk_rooted_tree(G, root) wolffd@0: wolffd@0: n = length(G); wolffd@0: T = sparse(n,n); % not the same as T = sparse(n) ! wolffd@0: directed = 0; wolffd@0: [d, pre, post, cycle, f, pred] = dfs(G, root, directed); wolffd@0: [junk, pre2] = sort(d); wolffd@0: assert(isequal(pre, pre2)) wolffd@0: [junk, post2] = sort(f); wolffd@0: assert(isequal(post, post2)); wolffd@0: %[d, pre, post, cycle, f, pred] = dfs(G, [], directed); wolffd@0: for i=1:length(pred) wolffd@0: if pred(i)>0 wolffd@0: T(pred(i),i)=1; wolffd@0: end wolffd@0: end wolffd@0: