public void BuildEdge(int v1,int v2) {
Vertex n1 = null,n2 = null;
Vertex temp = Vfirst;
while(temp != null) {
int i = Decimal.Compare(v1,temp.Name);
if(i==0) {
//found 1st node..
n1 = temp;
break;
}
else temp = temp.Next;
}
//check if edge already exists
for(int i=0;i<n1.Num_Edges;i++) {
int j = Decimal.Compare(v2,n1.Adjacent[i].Name);
if(j==0) return;
}
temp = Vfirst;
while(temp != null) {
int i = Decimal.Compare(v2,temp.Name);
if(i==0) {
//found 2nd node..
n2 = temp;
break;
}
else temp = temp.Next;
}
n1.Adjacent[n1.Num_Edges++]=n2;
Edge temp2 = new Edge(n1,n2);
if(Efirst==null) {
Efirst = temp2;
Elast = temp2;
}
else {
temp2.AddEdge(Elast,temp2);
Elast = temp2;
}
}