132 /********************************************************************/ |
132 /********************************************************************/ |
133 /* get all predecessor vertices */ |
133 /* get all predecessor vertices */ |
134 /********************************************************************/ |
134 /********************************************************************/ |
135 |
135 |
136 public Vector getPreds() { |
136 public Vector getPreds() { |
137 Vector v1=new Vector(10,10); |
137 Vector preds=new Vector(10,10); |
138 Vertex vx1,vx2; |
138 Vector todo=(Vector)(parents.clone()); |
139 Enumeration e1,e2; |
139 Vertex vx1,vx2; |
140 |
140 Enumeration e; |
141 e1=getParents(); |
141 |
142 while (e1.hasMoreElements()) { |
142 while (!todo.isEmpty()) { |
143 vx1=(Vertex)(e1.nextElement()); |
143 vx1=(Vertex)(todo.lastElement()); |
144 if (v1.indexOf(vx1)<0) v1.addElement(vx1); |
144 todo.removeElementAt(todo.size()-1); |
145 e2=vx1.getPreds().elements(); |
145 preds.addElement(vx1); |
146 while (e2.hasMoreElements()) { |
146 e=vx1.parents.elements(); |
147 vx2=(Vertex)(e2.nextElement()); |
147 while (e.hasMoreElements()) { |
148 if (v1.indexOf(vx2)<0) v1.addElement(vx2); |
148 vx2=(Vertex)(e.nextElement()); |
149 } |
149 if (preds.indexOf(vx2)<0 && todo.indexOf(vx2)<0) |
|
150 todo.addElement(vx2); |
150 } |
151 } |
151 |
152 } |
152 return v1; |
153 |
|
154 return preds; |
153 } |
155 } |
154 |
156 |
155 /********************************************************************/ |
157 /********************************************************************/ |
156 /* get all successor vertices */ |
158 /* get all successor vertices */ |
157 /********************************************************************/ |
159 /********************************************************************/ |
158 |
160 |
159 public Vector getSuccs() { |
161 public Vector getSuccs() { |
160 Vector v1=new Vector(10,10); |
162 Vector succs=new Vector(10,10); |
161 Vertex vx1,vx2; |
163 Vector todo=(Vector)(children.clone()); |
162 Enumeration e1,e2; |
164 Vertex vx1,vx2; |
163 |
165 Enumeration e; |
164 e1=getChildren(); |
166 |
165 while (e1.hasMoreElements()) { |
167 while (!todo.isEmpty()) { |
166 vx1=(Vertex)(e1.nextElement()); |
168 vx1=(Vertex)(todo.lastElement()); |
167 if (v1.indexOf(vx1)<0) v1.addElement(vx1); |
169 todo.removeElementAt(todo.size()-1); |
168 e2=vx1.getSuccs().elements(); |
170 succs.addElement(vx1); |
169 while (e2.hasMoreElements()) { |
171 e=vx1.children.elements(); |
170 vx2=(Vertex)(e2.nextElement()); |
172 while (e.hasMoreElements()) { |
171 if (v1.indexOf(vx2)<0) v1.addElement(vx2); |
173 vx2=(Vertex)(e.nextElement()); |
172 } |
174 if (succs.indexOf(vx2)<0 && todo.indexOf(vx2)<0) |
|
175 todo.addElement(vx2); |
173 } |
176 } |
174 |
177 } |
175 return v1; |
178 |
|
179 return succs; |
176 } |
180 } |
177 |
181 |
178 public void setX(int x) {this.x=x;} |
182 public void setX(int x) {this.x=x;} |
179 |
183 |
180 public void setY(int y) {this.y=y;} |
184 public void setY(int y) {this.y=y;} |