2011-05-11 85 views
16

我想编写一个(不是二进制)树的实现,并在其上运行一些算法。使用matlab的原因是所有程序的其余部分都在matlab中,并且对于一些分析和绘图将是有用的。从matlab的初始搜索中,我发现在matlab中没有像指针这样的东西。所以我想知道在matlab中做到这一点的最好方法(就便利而言)?或者其他方式?在matlab中实现树的最佳方式是什么?

+0

如果您可以使用二进制红黑树实现进行管理,这很愚蠢:['import java.util.TreeMap'](http://java.sun.com/developer/onlineTraining/collections/Collection.html #HashMapTreeMapClasses) – 2012-02-27 20:46:28

+0

@MattB。你有一些关于如何在matlab中像使用树一样使用java.util.TreeMap的例子吗? – JuanPablo 2013-06-16 21:32:13

+0

@MattB。 [你可以像使用地图一样使用TreeMap](https://gist.github.com/juanpabloaj/5793514),但是,你如何像树一样使用? – JuanPablo 2013-06-16 21:38:17

回答

12

您可以使用MATLAB对象做到这一点,但您必须确保使用而不是值对象,因为您的节点将包含对其他节点(即父,下一个兄弟,第一个孩子)的交叉引用。

+1

链接似乎已死亡。 – petrichor 2012-02-27 13:54:47

+1

@petrichor谢谢。我修好了它。我想它从来没有工作,因为我最初粘贴了会话ID。 D'哦! – 2012-02-27 14:30:44

4

Matlab非常适合处理表示为adjacency matrixincidence matrix的任何种类的图(不仅树)。

矩阵(代表图)可以是稠密的或稀疏的,这取决于图的属性。

最后但并非最不重要的是,图论和线性代数是相互关联的非常基本的方式see for example,所以Matlab将能够为您提供一个非常好的平台来利用这种关系。

+0

如何使用它们... matlab只支持数组和单元阵列,我无法在matlab中构建链表。使用矩阵将在内存消耗方面成为噩梦,我没有线索。 – 2011-07-22 09:03:20

+0

@Rajesh D:好的,你可以使用稀疏矩阵(见http://www.mathworks.com/help/techdoc/ref/sparse.html)。谢谢 – eat 2011-07-22 09:27:24

4

这个问题很古老,但仍然开放。所以我只想指出读者在真正由你制作的MATLAB中的this implementationHere是一个指导你如何使用它的教程。

相关问题