i have coursework and i wrote the program but its not working ! can you help me about this
Assignment
Write a program for
-Creating a graph with n verticles and m edges.
-Counting the all isolated verticles in the graph
The Values of n and m are set by user.
The result should be shown appropriately on the screen of the computer.
And My Codes
Code:
// silinecek void edge_add code error
#include <iostream.h>
#include <stdlib.h>
const int v_n=10;
int i;
struct dgraph{
char vertex;
dgraph *gec;
}*gr[v_n];
int vertex_check(dgraph *gr[v_n], char ver){
i=0;
while(gr[i]){
if(gr[i]->vertex==ver)
return 1;
i++;
}
return 0;
}
void vertex_add(dgraph *gr[v_n], char ver){
if(vertex_check(gr,ver)==0){
int y=0;
while(gr[y] && (y<v_n))
y++;
gr[y]=new dgraph;
gr[y]->vertex=ver;
gr[y]->gec=NULL;
cout << "\nVertex " << ver << " added.\n";
}
else
cout << "\nError.";
}
bool edge_check(dgraph *gr[v_n], char ch1, char ch2){
if((vertex_check(gr, ch1) && vertex_check(gr, ch2))==1){
int say=0;
while(gr[say]->vertex!=ch1)
say++;
dgraph *point=gr[say];
while(point->vertex!=ch2 && point->gec!=NULL){
point=point->gec;
if(point->vertex==ch2)
return true;
}
}
return false;
}
void edge_add(dgraph *gr[v_n], char ch1, char ch2){
if(edge_check(gr,ch1,ch2)==true)
cout << "\nEdge exists.";
else{
if(vertex_check(gr,ch1)==0)
vertex_add(gr,ch1);
if(vertex_check(gr,ch2)==0)
vertex_add(gr,ch2);
dgraph *p;
int gez=0;
while(gr[gez]->vertex!=ch1)
gez++;
p=new dgraph;
p->vertex=ch2;
p->gec=gr[gez]->gec;
gr[gez]->gec=p;
cout << "\n\nEdge added: " << ch1 << "->" << ch2 << "\n";
}
}
void yunus(){
int a=0;
while(gr[a]!=NULL){
cout << "\n1\n";
a++;
}
}
void main(){
int choice,vertices,edges,fa;
int sayac=0;
char vertex_name,edge_name1,edge_name2;
cout << "Number of vertices:";
cin >> vertices;
cout << "\nNumber of edges:";
cin >> edges;
do{
do{
cout << " \n\n[MENU]\n";
cout << "1-> Add vertex\n";
cout << "2-> Add edge between Vertex 1 & Vertex 2\n";
//cout << "3-> List vertices with 3 out-degrees\n";
cout << "4-> Exit\n";
cout << " Choice:";
cin >> choice;
}
while(choice<1 && choice>4);
switch(choice){
case 1:
for(fa=0;fa<vertices;fa++){
cout << "\nVertex:";
cin >> vertex_name;
vertex_add(gr,vertex_name);
}
break;
case 2:
for(fa=0;fa<edges;fa++){
cout << "\nVertex 1:";
cin >> edge_name1;
cout << "Vertex 2:";
cin >> edge_name2;
while(gr[sayac]->vertex!=edge_name1)
sayac++;
edge_add(&gr[sayac],edge_name1,edge_name2);
sayac=0;
}
break;
/*case 3:
yunus();
break;*/
case 4:
exit(1);
}
}
while(choice!=4);
}