2011-05-11 112 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是一個指導你如何使用它的教程。

相關問題