I have a 2D array of M x N which has 1s and 0s. I should convert it into an undirected graph.

For example,

1 1 1

1 0 1

1 1 1

should output that the above-given graph has 8 vertices and 8 edges ([0,1], [1,2], [2,4], [4,7],[7,6],[6,5],[5,3],[3,0])

I don’t know if its the best but you can create a variable `count=0`

and iterate over the matrix and replace every ‘1’ with `++count`

.

So now your array would look like this :

```
1 2 3
4 0 5
6 7 8
```

(You have ‘count’ number of nodes)

Now again iterate and for each non-zero value you encounter, check all its adjacent values and correspondingly update the adjacency matrix or list.