【问题标题】:How to print elements from a binary tree ignoring all the repeating ones?如何打印忽略所有重复元素的二叉树中的元素?
【发布时间】:2019-01-20 18:25:21
【问题描述】:
 public void printTree(node root)
    {
        if(root != null)
        {
            printTree(root.left);
            System.out.print(root.word + " " + root.line+" ");
            String tempStr=root.word; int tempLn=root.line; //don't know how to use it
            printTree(root.right);
        }
    }

假设树已经按字典顺序排序。

比如文件是这样的:

aaa 
zzz
the the the the 

输出应该是这样的:

aaa line: 1
the line: 3 3 3 3
zzz line: 2

我的代码现在多次显示相同的单词。我不知道如何组织这段代码。

【问题讨论】:

  • 您介意发布您的整个树源代码吗?
  • @Leo:我编辑了我的帖子..
  • 我们可以修改你的树的方法吗?您必须在树中行走时呈现此结果,还是可以在其他结构中累积数据?您只能使用您引用的临时工,或者我们可以使用节点临时工吗?

标签: java printing binary-tree


【解决方案1】:

问题是您在找到信息时会立即输出信息。相反,您需要以持续的方式存储您遇到的数据。

您可能希望使用HashMap<String, List<Integer>> 数据结构来保存此信息。

【讨论】:

  • 允许使用哪些数据结构?
【解决方案2】:

您可以使用HashMap 来存储<String, List> 对,其中String 将是您的密钥,List 将是找到该密钥的位置列表。如果你需要检查,如果一个键已经在地图中,你做

map.contains(key);

如果有,您可以通过执行更新适当的列表

map.get(key).add(page);

【讨论】:

  • 除了HashMap还有什么我可以使用的吗?很抱歉,我不允许在此作业中使用它...
  • 您可以创建自己的类来存储键和位置列表,然后将它们放入一个简单的列表中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
相关资源
最近更新 更多