【发布时间】:2018-08-16 06:56:12
【问题描述】:
我一直在做一个任务,它让我们使用特里树将字典中的单词添加到树中,然后搜索它。我坚持的部分是类析构函数。这是我第一次不得不处理析构函数/内存管理,下面是我在搜索我目前拥有的资源后的最佳猜测。
我在正确的轨道上吗?每个节点有 27 个子节点(字母表和分隔符),所以我希望它将它们从叶子节点到根节点全部删除。
class Trie
{
private:
TrieNode *_root = nullptr;
TrieNode *_current = nullptr;
TrieNode *_child = nullptr;
string current_word;
bool setRoot = false;
protected:
public:
Trie()
{
_root = new TrieNode{};
}
virtual ~Trie()
{
//TODO: clean up memory
DestroyRecursive(_root);
}
void Trie::DestroyRecursive(TrieNode* node)
{
if (node != nullptr)
{
for (TrieNode* child : node->getChildren())
{
delete(child);
}
}
}
如何检查析构函数是否正常工作?我正在使用 Visual Studio。
【问题讨论】:
标签: c++ tree destructor trie