Я работаю над анализом PST-файлов с помощью https://www.five -ten-sg.com / libpst / rn01re06.html и https://blogs.msdn.microsoft.com/openspecification/2010/11/30/ms-pst-how-to-navigate-the-node-btree/, где они обозначаются как BTree, но, похоже, он не следует правилам, которые я могу найти для обычных BTrees.
Я нанес на карту, чтобы я мог показать это визуально
По сути, он состоит из узлов, которые содержат дочерние элементы (до 20) и имеют одинаковую структуру и т. Д. До конечных узлов, которые отличаются, но внутренние узлы не используются для какого-либо фактического хранения данных и кажутся (иногда) делиться ключами первого узла у своих потомков.
Я спрашиваю, потому что я пытаюсь найти общие способы вставки, удаления, поиска этих данных, но обычные алгоритмы BTree, такие как https://www.geeksforgeeks.org/b-tree-set-1-introduction-2/, не работают, так как эти данные, похоже, не работают структурированы точно так же.
Я изменил алгоритм поиска для обхода текущих дочерних элементов в обратном порядке, пока не найду дочерний элемент с идентификатором, меньшим или равным тому, который я ищу, и затем посмотрю на эти узлы дочерних элементов, что прекрасно работает но я бы предпочел не изобретать велосипед здесь и не пропустить вещи, если мне не нужно.