我想生成以下一般樹:開展通識教育樹使用鏈表數據結構
root
|
----------------
| |
child child
|
----
|
child
|
-------------
| | |
child child child
我打算用兩個班,一個存儲父節點元素(Tree類)和其他實現用於存儲兒童的鏈接列表(Single_linked_list)。
Tree類的我的類定義是:
template <class Object>
class Tree
{
private:
Object node_val; // this is stored in node of tree
Single_linked_list< Tree<Object> * > children;
public:
// accessors and mutators
...
}
我只是想確認Single_linked_list< Tree<Object> * > children;
應該有它的*
因爲在C++中是指定的方式,它是將一個指針,把linked_list的開頭指向所有的孩子?
請讓我知道,如果我對該行代碼的解釋是正確的。
這可能是好的。我可能會將類本身稱爲「節點」而不是「樹」,因爲每個對象實際上都是一個節點,而樹是所有節點的集合。另外考慮存儲'shared_ptr'的節點而不是原始的指針,因爲當你實現任何類型的樹操作時,你將爲自己節省一個痛苦的世界。最後,單鏈表可以用C++ 0x作爲''。 –
2011-06-14 19:59:41