From 7725a9caebc6494a21f279bbc4d13ed578d5db48 Mon Sep 17 00:00:00 2001 From: Kai Ni Date: Sat, 12 Dec 2009 22:34:36 +0000 Subject: [PATCH] find a bottom to up ordering given the tree structure {pred} returned by matlab's graphminspantree --- matlab/kai02_bottomUp.m | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/matlab/kai02_bottomUp.m b/matlab/kai02_bottomUp.m index b722b50c6..7d14360cb 100644 --- a/matlab/kai02_bottomUp.m +++ b/matlab/kai02_bottomUp.m @@ -1,5 +1,25 @@ -% test ordering +% find a bottom to up ordering given the tree structure {pred} returned by matlab's graphminspantree +function [ordering] = kai02_bottomUp(pred) + +%% compute the levels of the nodes +parents = [0]; +node_levels = zeros(length(pred), 1); +current_level = 1; +while ~isempty(parents) + parents = find(ismember(pred, parents)); + node_levels(parents) = current_level; + current_level = current_level + 1; +end +max_level = current_level - 1; + +ordering = Ordering(); +for level = max_level:-1:1 + ids = find(node_levels==level); + for i = 1:length(ids) + ordering.push_back(sprintf('x%d', ids(i))); + end +end -input = 6; -ordering = bottom_up_ordering(6); ordering.print('ordering') + +end \ No newline at end of file