我正在創建Trie的實現,TrieNode結構是個別節點和TrieSet類,它是完整的樹。這裏是我的TrieNode的簽名:Trie樹中的Trie節點的析構函數
struct TrieNode {
TrieNode(bool in, TrieNode *p);
~TrieNode();
void deleteChildren(TrieNode *node);
bool isLeafNode();
bool inSet;
TrieNode *parent;
TrieNode *children[30];
};
我試圖確定哪些第一遞歸刪除所有的孩子,最後刪除該節點的析構函數,但我得到一個分段錯誤。這裏是我的構造函數,析構函數和它的幫助函數的代碼:
TrieNode::TrieNode(bool in, TrieNode *p)
{
inSet = in;
parent = p;
}
TrieNode::~TrieNode()
{
for(int i = 0; i < 30; i++)
{
if(children[i] != nullptr)
{
delete children[i];
}
}
}
任何幫助,將不勝感激,謝謝!
您需要遵循三法則,五法則或零法則。 – aschepler
你可以爲你的構造函數添加代碼嗎? – 1201ProgramAlarm