Adjacency matrices encode nodes as rows and columns, whereas the presence/absence of an edge between two nodes is encoded in the cell where the nodes rows and columns intersect.
Optimized for small and dense networks. Is well suited for several node attributes, preferably of homogenous types.
Supports several edge attributes, and heterogenous node or edge attributes. Can be used for layered or sparse networks.
Not ideal for tasks on paths and for visualizing trees.