If you use the binary search tree in this article (http://www.codeproject.com/KB/collections/BinarySearchTree.aspx), then you should be able to add the elements of the sorted array in order and then call the BalanceTree() method to re-balance the tree.
Note also that, if you're using .NET Framework 4.0 (VS 2010), the new SortedSet class (http://msdn.microsoft.com/en-us/library/dd412070.aspx) is implemented as a red-black tree which is, of course, a form of self-balancing binary search tree. You can construct a SortedSet from any IEnumerable including a sorted array.
VulpesPosted Oct 7, 2011, 9:32 AM
Note also that, if you're using .NET Framework 4.0 (VS 2010), the new SortedSet