282283284285286287288289290291292
n1 = rn; n2 = ln; } FIFOQueue queue = new FIFOQueue(256); queue.enq(n1); //ensure all subnodes of n1 visited before n2 while(!queue.isEmpty()) { Node n = (Node)queue.deq();
296297298299300301302303304305306
if (ln == null) continue; assertTrue(ln.getCount() < n2.getCount()); assertTrue(rn.getCount() < n2.getCount()); queue.enq(ln); queue.enq(rn); } } return 0; }
297298299300301302303304305306307
assertTrue(ln.getCount() < n2.getCount()); assertTrue(rn.getCount() < n2.getCount()); queue.enq(ln); queue.enq(rn); } } return 0; } };
220221222223224225226227228229230
id2node.put(root.getObject(), root); builder.addNode(root); FIFOQueue queue = new FIFOQueue((int)Math.pow(2, levels+1)); queue.enq(root); //build a complete binary tree // number of nodes = 2^(n+1) - 1 int level = 0; while (level < levels) {
246247248249250251252253254255256
builder.addNode(ln); builder.addNode(rn); builder.addEdge(le); builder.addEdge(re); queue.enq(ln); queue.enq(rn); } level++; }
247248249250251252253254255256257
builder.addNode(rn); builder.addEdge(le); builder.addEdge(re); queue.enq(ln); queue.enq(rn); } level++; } return(new Object[]{root, id2node});
263264265266267268269270271272273
OptNode root = (OptNode)builder.buildNode(); root.setDegree(2); builder.addNode(root); FIFOQueue queue = new FIFOQueue((int)Math.pow(2, levels+1)); queue.enq(root); //build a complete binary tree // number of nodes = 2^(n+1) - 1 int level = 0; while (level < levels) {
289290291292293294295296297298299
290291292293294295296297298299300
builder.addNode(rn); builder.addEdge(le); builder.addEdge(re); queue.enq(ln); queue.enq(rn); } level++; } return(new Object[]{root});
308309310311312313314315316317318
root.setInDegree(0); root.setOutDegree(2); builder.addNode(root); FIFOQueue queue = new FIFOQueue((int)Math.pow(2, levels+1)); queue.enq(root); //build a complete binary tree // number of nodes = 2^(n+1) - 1 int level = 0; while (level < levels) {