Skip to content
Snippets Groups Projects
Nloc.java 3.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • package nloc;
    
    
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Stack;
    
    
    public class Nloc {
      public static void main(String[] args) {
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
        Channel chan0 = new Channel(6,6);
        Channel chan1 = new Channel(8,8);
        Channel chan2 = new Channel(8,8);
        Channel chan3 = new Channel(11,12);
        Channel chan4 = new Channel(19,21);
        Channel chan5 = new Channel(5,5);
        Channel chan6 = new Channel(8,8);
        Channel chan7 = new Channel(9,10);
        Channel chan8 = new Channel(25,28);
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
        Module m0 = new Module("m0", 22,10);
        Module m1 = new Module("m1", 10,10);
    
        Pump p0 = new Pump();
        Sink s0 = new Sink();
    
    
        p0.addChild(chan0);
    
        chan0.addChild(chan1);
        chan1.addChild(chan3);
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
        chan1.addChild(chan2);
        chan2.addChild(chan4);
        chan3.addChild(chan5);
        chan4.addChild(chan7);
        chan7.addChild(m1);
        m1.addChild(chan8);
        chan8.addChild(s0);
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
        chan5.addChild(m0);
        m0.addChild(chan6);
        chan6.addChild(chan7);
    
    
        getAllPaths(p0);
        //List<Path> pl = new ArrayList<Path>();
        //printAllPaths(p0,new Path(), pl);
        //System.out.println(pl);
        //for (Path p : pl) {
        //  for (Channel ch : p.getChanlist()) {
        //    System.out.println("ID: " + ch.getID());
        //  }
        //}
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
    
    
       // for(Channel ch : chan0.getChildren()) {
       //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
       // }
       // for(Channel ch : chan1.getChildren()) {
       //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
       // }
       // for(Channel ch : chan2.getChildren()) {
       //   System.out.println("ID: " + ch.getID() + " pSteps: " + ch.getPSteps());
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
      }
      // list nodes_to_visit = {root};
      // while( nodes_to_visit isn't empty ) {
      //     currentnode = nodes_to_visit.take_first();
      //       nodes_to_visit.prepend( currentnode.children );
      //         //do something
      //         }
    
      //
    //stack.push(root)
    //while !stack.isEmpty() do
    //    node = stack.pop()
    //    for each node.childNodes do
    //        stack.push(stack)
    //    endfor
    //    // …
    //endwhile
    
      public static void getAllPaths(Channel chan) {
        Path p = new Path();
        List<Path> pl = new ArrayList<Path>();
        Stack<Channel> chanStack = new Stack<Channel>();
    
        chanStack.push(chan);
        while(!chanStack.empty()) {
          Channel temp = chanStack.pop();
          System.out.println("path add: " + temp.getID());
          p.add(temp);
          if (temp.getChildren().size() == 0) {
            System.out.println(chanStack);
            for (Channel c : p.getChanlist()) {
              System.out.println( c + ": " + c.getID());
            }
          }
          for (Channel chl : temp.getChildren()) {
            System.out.println("stack push " + chl.getID());
            System.out.println(chanStack);
            chanStack.push(chl);
          }
        }
      }
      
      public static void printAllPaths(Channel chan, Path path, List<Path> pathlist) {
        path.add(chan);
        if (chan.getChildren().size() == 0) { 
          System.out.println("Here" );
          for (Channel ch : path.getChanlist()) {
            System.out.print(ch.getID() + " ; ");
          }
          System.out.println( "");
          pathlist.add(path);
        } else {
          for (Channel ch : chan.getChildren()) {
            printAllPaths(ch, new Path(path), pathlist);
          }
        }
      }
    
    
    Peter Wagenhuber's avatar
    Peter Wagenhuber committed
      public static void printPath(Channel chan) {
        System.out.println("ID: " + chan.getID() + " pSteps: " + chan.getPSteps());
        if (chan.getChildren().size() != 0) {
          for (Channel ch : chan.getChildren()) {
            printPath(ch);
          }