2011-08-16 50 views
1

我需要一個解決方案,我有一個「主」列表/數組有一定數量的順序鏈接子代,每個代表父代表的一個子段。它類似於"unrolled linked list"模式,但這裏的分段列表大小應該是動態的。建立數據結構/模式?與動態鏈接的兒童列表

這裏我會試着進一步解釋。我想知道是否有這樣的數據結構/模式的確定術語(以「圖形」,「二叉樹」等相同的方式),在我進一步調查此問題時尋求幫助,試圖找到最好的實施。

比方說,我們有一個「大師」名單大小的十個項目,0-9,並有三個孩子a,b和代表通過以下方式師傅的細分市場C:

"master" ------------------- 
0-9  0 1 2 3 4 5 6 7 8 9 
      ===== ========= === 
"children" a  b   c 
      0-2 3-7  8-9 

理想情況下,解決方案應允許

  • 師傅創建和調整子段​​大小的它的孩子(根據連接到主列表中的數據項內容規則)
  • 的孩子改變他們的子段大小,導致李nked兄弟姐妹來調整它們的大小/位置相應
  • 手柄和不足兒童總數的溢出大小不一相比,主尺寸

任何博客,文章,代碼片段等剷球這樣的事情將是很大的幫助! (我的解決方案將在php和as3中創建,但語言在這裏並不重要)。

Thanx!

+0

難道,同一個主人有兩個孩子(例如a和b),還是每個主人只有一個孩子? – Andreas

+0

主人和孩子之間應該有一對多的關係...... – Cambiata

+0

我懷疑,你可以在一個數組中做一個n:m的關係。當然,你可以用兩個陣列來完成。 – Andreas

回答

0

如果我理解你想要的東西。反過來構建你的數據結構。子節點的列表(或向量),每個節點都有一個帶有反向鏈接的主節點的列表。在這種情況下更改子段大小將簡單地將主節點從一個列表移動到另一個列表。

1 -> 2 -> 3 -> 4 -> 5 
\/ / \/
    a-----   b 
+0

謝謝,elevener!我之所以用這種方式表達(之所以稱之爲「主人」),是因爲我從一個給定的主列表開始,從這個列表中扣除孩子。但是,從「兒童視角」控制結構可能更好... – Cambiata

+0

其實它並沒有太大的改變。它會更加方便。保持你的主人作爲一個列表,但仍然組織主人/孩子鏈接我提出的方式(建立兒童名單/扣除鏈接)。原則上,在這種情況下,您不需要將孩子留在列表中,只需簡單地從主列表,添加的圖像中導出鏈接 – elevener