2. void CMap::breadthFirstTraverseImpl(vector<int> preVec)
2. void CMap::breadthFirstTraverseImpl(vector<int> preVec)
1. CMap::breadthFirstTraverse(int nodeIndex)
/**
* 广度优先遍历 (java实现)
*/
public void breadthFirstTraverse(int nodeIndex) {
System.out.print(NodeArray[nodeIndex].date+" ");
NodeArray[nodeIndex].isVistited = true;
Vector<Integer> v1 = new Vector<Integer>();
v1.add(nodeIndex);
breadthFirst(v1);
}
public void breadthFirst(Vector<Integer> v1) {
int[] value = new int[1];
Vector<Integer> v2 = new Vector<Integer>();
for(int j = 0; j < (int)v1.size() ; j++) {
for(int i = 0; i < Capacity ; i++) {
getValueFromMatrix(v1.get(j), i, value);
if(value[0] != 0) {
if(NodeArray[i].isVistited) {
continue;
}else {
System.out.print(NodeArray[i].date+" ");
NodeArray[i].isVistited = true;
v2.add(i);
}
}
}
}
if(v2.size() == 0) {
return;
}else {
breadthFirst(v2);
}
}