2013-08-24 53 views
0

我正在編寫一個應該模仿一個城市的程序,而我遇到的問題之一是如何存儲大量的互連數據。例如,每個Street都有一個direction枚舉(NORTH_ONE_WAY,EAST_WEST等)和其他屬性。最重要的屬性是,每條街道都有一張intersections(與其相交的街道地圖以及相交的街道號碼)的列表。從這個數據結構中,我應該能夠解析它並創建一個可視化文件(稍後介紹並且不是此問題的一部分)。街道和交叉點數據結構

現在的問題是:什麼是最好的數據結構類型用於此?顯然,關係數據庫將是一個不錯的選擇,但是如果我用C++編寫(不是對這個問題的約束,但是C++實現會是一個優點),我應該使用它嗎?還有什麼其他的數據結構可以爲此工作?

回答

0

您描述的數據結構是。參見例如以獲得在圖上操作的通用庫。請注意,這並不意味着您不會使用數據庫:數據的存儲和內存中的表示方式往往會有所不同。實際表現形式往往取決於您想要對數據做什麼。

0

只是不維護每個本地對象的關係。有一個'meta'對象評估關係,它可能會緩存這些關係。

一些細節: 當然,街道應該知道燈籠,漂亮的花園和十字路口。但它是一個交叉點(無所謂)。街道可能在路口有一條單車道或一條雙車道(左轉)。交叉點由較高的實例維護。

(到左側車道司機道歉)

+0

你的意思是MAIN ST不應存儲與費爾菲爾德的交集和費爾菲爾德不應存放交叉口主...應該有一個單獨的對象完全以存儲單交集(和其他)? – MattDavBen

+1

@MattDavBen是的。 –