# 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 ] ```