1.Depth First Serarch:
1.定义boolean型数组,判定顶点是否被访问过
//定义boolean数组,确定那个结点被访问过
private boolean[] isVisited;
isVisited=new boolean[5];
2.得到第一个邻接节点的下标
//得到第一个临接结点的下标
public int getFirstNeighbor(int index){
for(int j=0;j<vertexList.size();j++){
if(edges[index][j]>0){
return j;
}
}
return -1;
}
3.根据上一个邻接节点获取下一个邻接节点
//根据前一个临接结点的下标,获取下一个
public int getNext(int v1,int v2){
for(int j=v2+1;j<vertexList.size();j++){
if(edges[v1][j]>0)
return j;
}
return -1;
}
4.DFS:
//DFS
public void DFS(boolean[] isVisited,int i){
// 1.首先访问结点,输出
System.out.print(getValue(i)+"->");
//2.标记结点已经被访问过
isVisited[i]=true;