Ich suchte einige Male, aber bekam keine Ahnung.Java: Einen Bool für alle Instanzen einer Klasse setzen
Ich versuche, einen gerichteten Graphen einzurichten. Jeder Knoten (Instanz der class Node
) sollte eine bool visited
halten, um zu sehen, ob sie von einer Suchfunktion besucht wurde.
Nachdem die Suche abgeschlossen ist, möchte ich die bool visited
für alle Instanzen der Klasse zurücksetzen, ohne sie erneut durchlaufen.
Kann ich irgendwie gehen - oder bin ich total auf dem Holzweg?
Vielen Dank für Hilfe und jubelt, Mike
// Cans.java
public class Cans {
public static void main(String[] args) {
int[] fillLevels = {2,15,3};
int[] states = {8,0,0};
node MyNode = new node(3,0);
MyNode.setfillLevels(fillLevels);
node MyLink = new node(3,1);
MyNode.addLink(MyLink);
MyNode.setStates(states);
MyLink.printStates();
System.out.println("Number of links: "+MyNode.getNumLinks());
}
boolean fillState(node nodeA, int stateA,node nodeB, int stateB){
int value = nodeA.getState(stateA);
nodeA.setState(stateA, value);
return true;
}
}
..
// node.java
import java.util.*;
public class node {
private int[] states;
private static int[] fillLevels;
private int level;
private int n_nodes;
private static int id0 = 0;
private int id;
private boolean visited;
List<node> next = new ArrayList<node>();
node(int n_nodes,int level){
id=id0;
id0++;
this.n_nodes = n_nodes;
this.level = level;
states = new int[n_nodes];
visited = false;
fillLevels = new int[n_nodes];
}
void setfillLevels(int[] fillLevels){
this.fillLevels = fillLevels;
}
void setStates(int[] states){
this.states = states;
}
void setState(int state, int value){
states[state] = value;
}
int getState(int state){
return states[state];
}
void addLink(node linkedNode){
next.add(linkedNode);
}
boolean isVisited(){
return visited;
}
int getNumLinks(){
return next.size();
}
void printStates(){
System.out.println("States of node #"+id+" on level "+level+":");
int cntr = 0;
for(int i:states){
System.out.println(cntr+": "+i);
cntr++;
}
}
}
bieten Beispiele für das, was Sie bisher getan haben. –
Behalten Sie eine (statische?) Sammlung von Knoten, während Sie sie erstellen, und durchlaufen Sie sie, wenn Sie sie zurücksetzen möchten. – shmosel
Also im Grunde: Sie müssen alle Instanzen durchlaufen, es gibt keinen anderen Weg. – Izruo