Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Graph Implementation (http://www.go4expert.com/forums/graph-implementation-t23680/)

 ihatec 27Oct2010 03:21

Graph Implementation

Hi, I have to implement a graph as a adjacent matrix for my algorithms & data structure course and almost everything works correct besides method given below. The method should removes given vertex from the graph and all the edges containing it.
Returns: 0 if no error occurs or -1 otherwise
It does not produce the proper output(does not remove the given vertex and edges). I even draw and analize this step by step on a paper and I thing there is a problem with the part

if(i==vertex||j==vertex)
continue;
array[i][j]=matrix[i][j];

but I am not sure that this is the problem, maybe it is somewhere else. Please help me with this.

Code:

```count - size of the adjacent matrix(number of vertices) adjacent[i][j] - matrix representing the graph.(from this graph vertex should be removed) int AdjacencyMatrixGraph::removeVertex(int vertex) {     if(vertex>=count||vertex<0)         return -1;     if(count==0)         return -1;     else     {         int **tablica=new int*[count-1];         for(int i=0;i<count-1;i++)             tablica[i]=new int[count-1];                 if(!tablica)             return -1;                 for(int i=0;i<count-1;i++)             for(int j=0;j<count-1;j++)                 tablica[i][j]=0;         for(int i=0;i<count-1;i++)             for(int j=0;j<count-1;j++)             {                 if(i==vertex || j==vertex)                     continue;                 tablica[i][j]=adjacent[i][j];                             }         for(int i=0; i<count;i++)         {             delete [] adjacent[i];         }         delete [] adjacent;                 adjacent=tablica;         count--;         return 0;     } }```

 All times are GMT +5.5. The time now is 18:28.