Алгоритм древовидных связей?

Дело в том, что мне нужно создать одномерный массив, представляющий определенное количество объектов. Эти объекты организованы, как показано на рисунке. Ссылка на сайт

И я должен уметь сказать, с кем он связан. Количество объектов - это единственное, что указано.

Есть ли какой-нибудь алгоритм для этого?

Пожалуйста, укажите свои усилия (например, опубликуйте свой код и / или опишите алгоритмы, которые вы рассмотрели до сих пор). Без этого другим трудно давать советы или предложения.

dat 15.11.2018 17:41

Добро пожаловать в SO. Да, есть. Что ты пробовал? Где что-то пошло не так? Просмотрите приветственное руководство для SO и Как спросить ...

Jason Armstrong 15.11.2018 17:41
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
2
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Такая организация часто используется для реализации кучи в массивах: https://www.geeksforgeeks.org/array-presentation-of-binary-heap/

Вы просто помещаете объекты в массив в порядке уровней (сначала верхний 1, затем 2 из уровня 2, затем 4 из уровня 3 и т. д.).

Предполагая, что индексирование на основе 0, объект в массив [я] имеет дочерние элементы массив [2 * i + 1] и массив [2 * i + 2].

Если ваш массив начинается с [1], то у объекта в массив [я] есть дочерние элементы массив [2 * i] и массив [2 * i + 1]

Другие вопросы по теме