Я новичок в структурах данных.
Я пытаюсь написать некоторый псевдокод для функции диапазона с деревьями сплайнов: Range(S, A, B)
, которая меняет S на набор всех его членов, для которых значение ключа C удовлетворяет A ≤ C ≤ B. Я знаю, что сплайс-деревья возникают типы бинарных деревьев поиска и реализовать свою собственную операцию splay. По сути, я пытаюсь вернуть диапазон значений между A и B. Однако у меня возникают проблемы с пониманием того, как я должен это делать, или где мне следует начинать, и какие условия я должен проверять. Я прочитал определение деревьев сопряжения и знаю, что они похожи на двоичные деревья поиска с алгоритмом перемещения вперед.
Это то, что я имею до сих пор:
Algorithm Range(Array S, int A, int B): array Set
S = new array(size) //Initialize an empty array of some size
if (A > B) then return NULL
Я просто чувствую себя немного потерянным после этого. Я не уверен, как проверить значения деревьев сплайнов. Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию, или в каких направлениях я должен идти.