【发布时间】:2013-12-08 23:34:08
【问题描述】:
所以我有这个二叉树映射(称为“mainMap”),它将字符串作为它的键,每个键都有一个内部映射作为它的值对。映射中的这个映射包含字符串键和整数值。
这个mainMap的目的是告诉哪个词对应哪个文件和它的频率。 例如:如果“猫”在“Arnold.txt”中出现 14 次,在“Jake.txt”中出现 6 次,则地图将保持
键 .... 猫
值 ... 映射 [键 ... Arnold.txt,值 ... 14],
[键 .... Jake.txt,值 ... 6]
这没问题。我的问题是遍历并打印出地图。我想要
--对于地图中的每个键
1) 访问地图中的当前键
2) 打印出那个键
3) 检索值(地图)
.........对于值映射中的每个键
.............a) 打印出密钥
.............b) 打印出值
4) 跳过一行,转到下一个键,重复步骤 1-4
我在想我可以使用迭代器。然而,令我尴尬的是,我不知道如何处理我的代码的语法。 (我没有使用 java 内置的 TreeMap 实用程序。我使用的是程序员构建的数据结构。
我在二叉树映射代码中有以下方法
public Iterator< KeyValuePair<K, E> > iterator()
{
Iterator< KeyValuePair<K, E> > itr = new MyTreeItr();
return itr;
}
public Iterator< KeyValuePair<K, E> > breadthFirstIterator()
{
Iterator< KeyValuePair<K, E> > itr = new MyBreadthFirstItr();
return itr;
}
我希望这是足够的信息。此打印输出用于测试目的,以确保我的地图正确收集数据。
【问题讨论】:
-
你能给我们你的树的代码吗?我们需要知道它是如何实现的才能回答这个问题。
-
当然!你是指我创建 mainMap 树的代码还是使用 BinaryTreeMap 类的方法的代码(或两者都有?)
-
通常二叉树都有一个根节点的引用,每个节点都有一个左右节点的引用。但是,您将结构描述为地图(左/右没有意义),所以我很困惑您如何使用地图来实现二叉树。
标签: java dictionary printing tree binary-tree