Для реализации B-деревьев в файле вы можете использовать смещение файла вместо указателей. Кроме того, вы можете реализовать «диспетчер файловой памяти», чтобы вы могли повторно использовать удаленные элементы в файле.
Чтобы полностью восстановить удаленные блоки в файле B-Tree, вам придется воссоздать B-Tree в новом файле. Также помните, что большинство ОС не имеют методов для усечения файлов. Переносимый метод усечения файла - написать новый файл и уничтожить старый.
Другим предложением является разбиение файла на раздел B-Tree и раздел данных (элемент). Раздел B-Tree будет содержать страницы. Листовые страницы будут содержать смещения к элементам данных. Раздел данных будет разделом в файле, содержащем элементы данных. В конечном итоге вы можете создать более одного раздела и разделы могут чередоваться.
Я провел много времени, играя с файловым B-Tree, пока не сдался и решил позволить программе базы данных (или серверу) обрабатывать данные для меня.