If you planned on having your own control hosting it you could rely on the out-of-the-box site map providers already used by various navigation controls like Top navigation, Quick launch bar, which get automatically populated. In the master there is already something like this:
<asp:SiteMapDataSource
ShowStartingNode="True"
SiteMapProvider="SPSiteMapProvider"
id="topSiteMap"
runat="server"
StartingNodeUrl="sid:1002"/>
Note that StartingNodeUrl value sid:1002 indicates QuickLaunchBar and sid:1025 is used for TopNavigationBar which give different output nodes. Then you could data-bind these to any Tree-view control or ASP Menu, or actually anything that could data-bind to a IHierarchicalDataSource (http://msdn.microsoft.com/en-us/library/system.web.ui.ihierarchicaldatasource(v=vs.90).aspx)