You should indeed be able to do this using the
Catalog table in the ReportServer database. It contains a column
Content with the report definition in binary, which you can convert to XML with a query.
The resulting XML can then further be queried. I personally don't have much experience with this, but with just glancing at the query method and basic XQuery expressions I could easily come up with this:
DECLARE @rdl XML
SELECT @rdl = CONVERT(XML,CONVERT(VARBINARY(MAX),C.Content))
FROM Reportserver.dbo.Catalog C
WHERE C.ItemID = 'AAAAAAAA-1111-BBBB-2222-CCCCCCCCCCCC' -- Use your ID ;-)
Which would give a result similar to this:
<p1:Subreport xmlns:p1="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" Name="SubReport">
From there it's still some work to get to a query that creates the "map/tree structure" you're after, but it should get you startedl. Unfortunately my SQL-fu is not yet awesome enough to just easily spit out that code, but I welcome you or anyone who's able to do so to add it to this answer.
Hope this helps.