Newer
Older
import java.util.List;
import java.util.ArrayList;
import java.util.Stack;
public class Nloc {
public static void main(String[] args) {
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);
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);
chan1.addChild(chan2);
chan2.addChild(chan4);
chan3.addChild(chan5);
chan4.addChild(chan7);
chan7.addChild(m1);
m1.addChild(chan8);
chan8.addChild(s0);
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());
// }
//}
// 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());
}
// 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
// }
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//
//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);
}
}
}
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);
}