我正在基于频率表的哈夫曼树。频率表是通过计算给定字符串中字符的频率并将相应项(字符和频率)放入LinkedList中生成的。然后我需要按照频率的顺序将这些项目放入哈夫曼树中。我知道它背后的逻辑是确保每个子树都有右和左节点,添加它们的频率,用它们添加的频率创建一个根节点,将下一个频率分别放置在左侧和右侧树中,并重复此过程直到没有更多的频率,并且子树与增加它们的频率的根连接;我遇到的麻烦是搞清楚如何实现代码。麻烦理解哈夫曼树算法
代码是相当广泛的,所以我宁愿避免发布所有它,总的布局是我有一个HuffmanFrequencyTable类,允许我建立表,一个HuffmanTreeNode类,允许我们创建节点放置在树和HuffmanTree类,帮助我们创建实际的树。一个编码类然后输入一个字符串并使用它创建的HuffmanFrequencyTable从字符串中建立树。这是一个家庭作业问题,所以请不要提供解决方案,我只是希望能够帮助理清其代码中的逻辑。
现在,我正在创建一个放置在树中的字符数组,查找表中不在数组中的字符的最低频率,并尝试将它们放在树叶中。当基础树叶在子树中已满时,我试图添加这些值,创建一个节点并继续树状结构。我为此使用for循环。这看起来是否是正确的开始?
谢谢你让我知道我没有脱落,只是不想继续走错路。退后一步,深吸一口气,摆脱了我代码中的垃圾,认为它很好。谢谢:) –