2011-05-27 12 views
0

我需要與樹結構和節點算法在C++中,從一個樹

template <class T> class tBST { 

    protected: 
       tBSTNode<T>* root; 

template <class T> class tBSTNode{ 

    protected: 
       T data; 
       tBSTNode<T>* left; 
       tBSTNode<T>* right; 

我想創建名爲根 - >刪除(T數據)的算法幫助刪除一個節點;類tBSTNode,即當您從根目錄調用類tBST中的函數時,它會刪除我放入的相同輸入(T數據)。

有人能幫我一下嗎?我很困擾這

我使用C++與C + + Builder5

+1

你試過了什麼? – tibur 2011-05-27 18:59:23

+0

您對圖的拓撲結構有任何約束(例如,您確定它是非循環的)嗎?它是否以null結尾? – Beta 2011-05-27 19:00:01

+2

想想看,刪除是什麼意思?你想刪除節點嗎?如果是這樣,其後的孩子應該如何與樹的其餘部分相連? – Beta 2011-05-27 19:02:23

回答

1

我不認爲你正在理解模板做什麼。 給予模板的類型指定模板的類型。

該類型不是模板的成員。

鑑於tBST<int>tBST<double>,既不包含int或double,它們是新類型。

如果您試圖實施刪除T型數據的方法。您只需在T上調用delete,然後使用任何類作爲模板的類型,都必須實現delete方法。

如果您試圖從節點中的分支中刪除T,則需要在模板tBSTnode中創建刪除子項的析構函數。然後在其父節點中將該項目設置爲null。