【发布时间】:2011-07-24 15:37:33
【问题描述】:
到目前为止,我一直在制定一个攻击计划,看看我该如何去做,这就是我所拥有的:
bool isEmpty() const - 如果为空则返回 true,否则返回 false
int getSize() - 返回字典中存储了多少单词
void insert (String word) - 如果字典中不存在,则将单词插入字典,否则更新。
boolfind(String word, WordNode & x) - 如果单词存在则返回 true 并将数据放入 x。
void printSorted() - 按字典顺序(指定)打印树中的单词
void remove (String word) - 实现节点的延迟删除
我有我想做什么的概念,并且我了解 AVL 树的工作原理。但是在实际编写代码时我完全卡住了,有人可以帮我开始吗?
【问题讨论】:
-
你可能不需要实现
remove。统计词频的任务不需要它。不过,请检查您的作业。 -
remove,就像 insert 一样需要显示 AVL 树在添加或删除某些内容时如何处理自身平衡。
-
AVL 树本身并没有“平衡自身”;
insert和remove函数根据需要执行平衡。根据我的经验,实施remove就像重新实施insert,但更难。如果您无论如何都需要实现remove,请确保您有办法对其进行测试。 -
到目前为止你有什么?如果你展示你目前所拥有的,我可能会提供帮助。
标签: c++ visual-studio-2010 visual-c++ avl-tree