Data Structures Recursive Algorithm