2013-07-14 49 views
0

我正在使用Multiway樹的有界版本。我可以創建我的元素類型並實例化一個我的類型的樹,但是如何創建根?我看到幾種形式的Insert_Child。我所有使用Insert_Child的嘗試都失敗了,因爲我使用No_Element作爲Parent或Before參數。Ada 2012多路樹,創建根節點

有沒有人有使用他們可以指向我的多路樹包的例子?

我使用免費的Ada版本,如果它很重要。

回答

3

創建Tree類型的變量;有一個在臂A hint

有一個特殊的節點,所述,這始終是存在並且具有 既不關聯的元素值也沒有任何父節點。根節點 提供了將節點添加到其他空樹的位置,並且 代表樹的基礎。其輸出

喜歡的東西

with Ada.Containers.Multiway_Trees; 
with Ada.Text_IO; use Ada.Text_IO; 
procedure Mway is 
    package Trees is new Ada.Containers.Multiway_Trees (Integer); 
    T : Trees.Tree; 
    C : Trees.Cursor; 
begin 
    C := T.Root; 
    T.Append_Child (Parent => C, New_Item => 1); 
    T.Append_Child (Parent => C, New_Item => 2); 
    for E of T loop 
     Put_Line (E'Img); 
    end loop; 
end Mway; 

1 
2 
+0

是的,根函數是你的朋友函數根(容器:樹)返回光標; – egilhh

0

謝謝你的答案,但你的根的描述不具有元素可能會導致我改變我的設計。我期望構建由子組件等構成的組件樹。我想將每個元素的屬性(例如質量或價格)彙總到程序集的總數中,並將其存儲在根目錄中。

我想我可以讓我創建的第一個節點是組件總數的佔位符,然後將真正的樹分支關閉。看起來笨拙但可行。

/s/Bob