#matlab #tree
#matlab #дерево
Вопрос:
Я хочу написать реализацию (не двоичного) дерева и запустить на нем некоторые алгоритмы. Причина использования matlab заключается в том, что остальные все программы находятся в matlab, и это было бы полезно для некоторого анализа и построения графиков. Из первоначального поиска в matlab я обнаружил, что в matlab нет таких вещей, как указатели. Итак, я хотел бы знать наилучший (с точки зрения удобства) возможный способ сделать это в matlab? или любыми другими способами?
Комментарии:
1. Если вы можете справиться с двоичной реализацией красно-черного дерева, это глупо просто:
import java.util.TreeMap
2. @MattB. у вас есть какой-нибудь пример того, как использовать
java.util.TreeMap
в matlab в виде дерева?3. @MattB. вы можете использовать TreeMap как карту , но как вы можете использовать как дерево?
4. @JuanPablo — это реализация дерева для универсальной карты. Это не раскрывает внутренности дерева. Это просто гарантирует O (log n) временные затраты на некоторые операции. ( Oracle изменила ссылку на документацию; теперь она здесь )
Ответ №1:
Вы можете сделать это с объектами MATLAB, но вы должны убедиться, что используете объекты-дескрипторы, а не объекты-значения, потому что ваши узлы будут содержать перекрестные ссылки на другие узлы (т. Е. родительский узел, следующий брат, первый потомок).
Комментарии:
1. @petrichor Спасибо. Я это исправил. Я думаю, это никогда не работало, так как я изначально вставил идентификатор сеанса. О!
Ответ №2:
Этот вопрос очень старый, но все еще открытый. Итак, я просто хотел бы указать читателям на эту реализацию в обычном MATLAB, созданную вашим покорным слугой. Вот руководство, в котором рассказывается о его использовании.
Ответ №3:
Matlab
очень хорошо подходит для обработки любого вида графиков (не только деревьев), представленных в виде матрицы смежности или матрицы инцидентности.
Матрицы (представляющие графики) могут быть либо плотными, либо разреженными, в зависимости от свойств ваших графиков.
И последнее, но не менее важное: теория графов и линейная алгебра очень фундаментально связаны друг с другом, см., например,, поэтому Matlab
мы сможем предоставить вам очень хорошую платформу для использования таких взаимосвязей.
Комментарии:
1. Как я могу их использовать … matlab поддерживает только массивы и ячейки, я не могу формировать связанные списки в matlab. использование матриц будет кошмаром с точки зрения потребления памяти, я понятия не имею.
2. @Rajesh D: Ну, вы можете использовать разреженные матрицы (подробнее смотрите здесь mathworks.com/help/techdoc/ref/sparse.html ). Спасибо