Package org.geotools.graph.util

Examples of org.geotools.graph.util.FIFOQueue


          if (ln.getCount() > rn.getCount()) {
            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();
           
            ln = (Node)obj2node.get(n.getObject().toString() + ".0");
            rn = (Node)obj2node.get(n.getObject().toString() + ".1");
           
            if (ln == null) continue;
           
            assertTrue(ln.getCount() < n2.getCount());
            assertTrue(rn.getCount() < n2.getCount());
           
            queue.enq(ln);
            queue.enq(rn);   
          }
        }
        return 0;
      }
     };
View Full Code Here


  public void killBranch(Graphable current, GraphTraversal traversal) {
    //do nothing
  }
 
  protected Queue buildQueue(Graph graph) {
    return(new FIFOQueue(graph.getNodes().size()))
  }
View Full Code Here

   * @param graph The Graph whose components are being iterated over.
   *
   * @return A first in first out queue
   */
  protected Queue buildQueue(Graph graph) {
    return(new FIFOQueue(graph.getNodes().size()));
  }
View Full Code Here

   * @param graph The graph being iterated over.
   *
   * @return A First In First Out queue.
   */
  protected Queue buildQueue(Graph graph) {
    return(new FIFOQueue(graph.getNodes().size()));
  }
View Full Code Here

    root.setObject(new String("0"));
    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) {  
      int nnodes = (int)Math.pow(2, level);
      for (int i = 0; i < nnodes; i++) {
        Node n = (Node)queue.deq()
       
        Node ln = builder.buildNode();
        ln.setObject(n.getObject() + ".0");
        id2node.put(ln.getObject(), ln);
       
        Node rn = builder.buildNode();
        rn.setObject(n.getObject() + ".1");
        id2node.put(rn.getObject(), rn);
       
        Edge le = builder.buildEdge(n, ln);
        Edge re = builder.buildEdge(n, rn);
       
        builder.addNode(ln);
        builder.addNode(rn);
        builder.addEdge(le);
        builder.addEdge(re);
       
        queue.enq(ln);
        queue.enq(rn)
      }
      level++;
    }
   
    return(new Object[]{root, id2node});
View Full Code Here

  ) {
    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) {  
      int nnodes = (int)Math.pow(2, level);
      for (int i = 0; i < nnodes; i++) {
        Node n = (Node)queue.deq()
       
        OptNode ln = (OptNode) builder.buildNode();
        if (level < levels-1) ln.setDegree(3);
        else ln.setDegree(1);
       
        OptNode rn = (OptNode) builder.buildNode();
        if (level < levels-1) rn.setDegree(3);
        else rn.setDegree(1);
       
        Edge le = builder.buildEdge(n, ln);
        Edge re = builder.buildEdge(n, rn);
       
        builder.addNode(ln);
        builder.addNode(rn);
        builder.addEdge(le);
        builder.addEdge(re);
       
        queue.enq(ln);
        queue.enq(rn)
      }
      level++;
    }
   
    return(new Object[]{root});
View Full Code Here

    OptDirectedNode root = (OptDirectedNode)builder.buildNode();
    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) {  
      int nnodes = (int)Math.pow(2, level);
      for (int i = 0; i < nnodes; i++) {
        Node n = (Node)queue.deq()
       
        OptDirectedNode ln = (OptDirectedNode) builder.buildNode();
        if (level < levels-1) {
          ln.setInDegree(1);
          ln.setOutDegree(2);
        }
        else {
          ln.setInDegree(1);
          ln.setOutDegree(0);
        }
       
        OptDirectedNode rn = (OptDirectedNode) builder.buildNode();
        if (level < levels-1) {
          rn.setInDegree(1);
          rn.setOutDegree(2);
        }
        else {
          rn.setInDegree(1);
          rn.setOutDegree(0);
        }
       
        Edge le = builder.buildEdge(n, ln);
        Edge re = builder.buildEdge(n, rn);
       
        builder.addNode(ln);
        builder.addNode(rn);
        builder.addEdge(le);
        builder.addEdge(re);
       
        queue.enq(ln);
        queue.enq(rn)
      }
      level++;
    }
   
    return(new Object[]{root});
View Full Code Here

TOP

Related Classes of org.geotools.graph.util.FIFOQueue

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.