В моем колледже я научился определять структуры данных, такие как двоичные деревья и графы. Мы были созданы для написания программ на С ++, которые использовались для запуска, и добавляли узлы в дерево (что мы сказали компилятору добавить). И как только мы закончили добавлять узлы в дерево, мы использовали поиск различных значений, чтобы убедиться, что наша программа работала ... Код выглядел подобно стандартному коду для двоичного дерева поиска, которое можно найти на geeksforgeeks. Но сейчас я пытаюсь создать веб-сайт, который поможет студентам узнать подробности о преподавателях нашего колледжа ... Ключом здесь будет цифра c идентификатор сотрудника учителя, и я хочу реализовать двоичное дерево поиска на бэкэнд ... И я не могу понять, как это реализовать.
Один вариант, который появляется передо мной, - это запустить скрипт js, который определяет новое дерево из линейного массива учителей. что у меня есть право в тот момент, когда к бэкэнду приходит запрос, запрашивающий данные конкретного учителя. Я запусту функцию поиска, определенную в моем коде, после того, как дерево будет построено, и дам возвращаемое значение в ответ пользователю ...
Но не будет ли это неэффективным? Вам нужно снова и снова определять дерево из массива только для того, чтобы вернуть результат запроса одного человека? Разве нет способа постоянно хранить дерево и держать его готовым к go для быстрого ответа на запрос каждого человека?
Есть ли способ сохранить дерево в файле быстрого доступа или какой-то способ сохранить сервер готов к поиску записей?
Как сделать так, чтобы дерево сохранялось таким образом, чтобы оно оставалось готовым к поискам, когда разные пользователи запрашивают у него данные вместо того, чтобы снова и снова запускать код построения дерева?
Как эти эффективные структуры данных реально реализуются в таких приложениях, как веб-сайты, программное обеспечение и т. Д. c.