void SplayTree<Key, Data>::RecursiveConvertToDArray(DArray<Data> *darray, SplayNode<Key, Data> *btree) const { if (!btree) return; RecursiveConvertToDArray(darray, btree->left); darray->insert(btree->data); RecursiveConvertToDArray(darray, btree->right); }
void RedBlackTree<Key, Data>::RecursiveConvertToDArray(DArray<Data> *darray, RedBlackNode<Key, Data> *btree) const { if (!valid(btree)) return; RecursiveConvertToDArray(darray, btree->left); darray->insert(btree->data); RecursiveConvertToDArray(darray, btree->right); }
void BTree<T>::RecursiveConvertToDArray( DArray <T> *darray, BTree<T> *btree ) { AppAssert(darray); if( !btree ) return; // Base case if( btree->id ) darray->PutData( btree->data ); RecursiveConvertToDArray( darray, btree->Left () ); RecursiveConvertToDArray( darray, btree->Right() ); }
DArray <T> *BTree<T>::ConvertToDArray() { DArray <T> *darray = new DArray <T>; darray->SetSize( Size() ); RecursiveConvertToDArray( darray, this ); return darray; }
DArray <T> *BTree <T> :: ConvertToDArray () { DArray <T> *darray = new DArray <T>; RecursiveConvertToDArray ( darray, this ); return darray; }
DArray<Data> *SplayTree<Key, Data>::ConvertToDArray() const { DArray<Data> *darray = new DArray<Data> ((int)size()); RecursiveConvertToDArray(darray, root); return darray; }
DArray<Data> *RedBlackTree<Key, Data>::ConvertToDArray() const { DArray<Data> *darray = new DArray<Data> ((int)size()); RecursiveConvertToDArray(darray, rootNode); return darray; }