Adjacency matrix and recognizing hierarchy?
By definition you can check if a graph is a tree (regardless of its representation) with these facts:


The graph does not have cycles.
It only has a single connected component.


The first condition can be checked with a simple DFS checking if there is a back edge. The connected components can be counted using either DFS or BFS.

Regarding to an adjacency matrix, every tree is a bipartite graph. See this, but keep in mind that proving that a a graph is bipartite does not mean it is a tree.