# CompactAdjacencyMatrix
> Compact adjacency matrix constructor.
## Usage
```javascript
var CompactAdjacencyMatrix = require( '@stdlib/utils/compact-adjacency-matrix' );
```
#### CompactAdjacencyMatrix( N )
Returns a compact adjacency matrix instance.
```javascript
var adj = new CompactAdjacencyMatrix( 4 );
// returns
// ...
adj.addEdge( 0, 1 );
adj.addEdge( 0, 2 );
adj.addEdge( 1, 2 );
adj.addEdge( 2, 3 );
```
## Examples
```javascript
var CompactAdjacencyMatrix = require( '@stdlib/utils/compact-adjacency-matrix' );
// Create a new adjacency matrix:
var adj = new CompactAdjacencyMatrix( 4 );
// Add edges:
adj.addEdge( 1, 0 );
adj.addEdge( 1, 2 );
adj.addEdge( 0, 2 );
adj.addEdge( 2, 3 );
// Compute the indegrees and outdegrees for each vertex:
var id;
var od;
var i;
for ( i = 0; i < 4; i++ ) {
id = adj.inDegree( i );
od = adj.outDegree( i );
console.log( 'vertex: %d. indegree: %d. outdegree: %d.', i, id, od );
}
// Print the list of all edges:
console.log( adj.edges );
// => [ [ 0, 2 ], [ 1, 0 ], [ 1, 2 ], [ 2, 3 ] ]
// Convert the adjacency matrix to an adjacency list representation:
console.log( adj.toAdjacencyList() );
// => [ [ 2 ], [ 0, 2 ], [ 3 ], [] ]
// Compute a topological ordering:
console.log( adj.toposort() );
// => [ [ 1, 0, 2, 3 ], null ]
```