Java Reference
In-Depth Information
/
**
Graph:Adjacencymatrix
*
/
classGraphmimplementsGraph{
privateint[][]matrix; //Theedgematrix
privateintnumEdge; //Numberofedges
publicint[]Mark;
//Themarkarray
publicGraphm(){}
//Constructors
publicGraphm(intn){
Init(n);
}
publicvoidInit(intn){
Mark=newint[n];
matrix=newint[n][n];
numEdge=0;
}
publicintn(){returnMark.length;}//#ofvertices
publicinte(){returnnumEdge;} //#ofedges
/
**
@returnv'sfirstneighbor
*
/
publicintfirst(intv){
for(inti=0;i<Mark.length;i++)
if(matrix[v][i]!=0)returni;
returnMark.length;//Noedgeforthisvertex
}
/
**
@returnv'snextneighborafterw
*
/
publicintnext(intv,intw){
for(inti=w+1;i<Mark.length;i++)
if(matrix[v][i]!=0)
returni;
returnMark.length;//Nonextedge;
}
/
**
Settheweightforanedge
*
/
publicvoidsetEdge(inti,intj,intwt){
assertwt!=0:"Cannotsetweightto0";
if(matrix[i][j]==0)numEdge++;
matrix[i][j]=wt;
}
/
**
Deleteanedge
*
/
publicvoiddelEdge(inti,intj){//Deleteedge(i,j)
if(matrix[i][j]!=0)numEdge--;
matrix[i][j]=0;
}
/
**
Determineifanedgeisinthegraph
*
/
publicbooleanisEdge(inti,intj)
{returnmatrix[i][j]!=0;}
Figure11.6
An implementation for the adjacency matrix implementation.