为什么字数统计不对呢
来源:7-1 集合基础和基于二分搜索树的集合实现
慕UI2011250
2020-03-04
public static void main(String[] args) {
System.out.println(“Pride and Prejudice”);
ArrayList words1 = new ArrayList<>();
FileOperation.readFile(“pride-and-prejudice.txt”, words1);
System.out.println(“Total words:” + words1.size());
BSTSet<String> set1 = new BSTSet<>();
for(String word:words1){
set1.add(word);
}
System.out.println("Total different words:" + set1.getSize());
}
结果:
Pride and Prejudice
Total words:125901
Total different words:125901
2回答
-
weixin_慕哥8353170
2020-05-15
你的问题不知道有没有解决,我也遇到相同的问题,原因是:
老师在第6章第3节中的添加元素操作是这样的:
if(e.compareTo(node.e) < 0) add(node.left, e); else //e.compareTo(node.e) > 0 add(node.right, e);
我的理解是 在元素相等的时候也做了添加元素操作,更改为下面代码,就不会在相等时进行添加元素操作:
if (e.compareTo(node.e) < 0) { node.left = add(node.left, e); } else if (e.compareTo(node.e) > 0) {//e.compareTo(node.e) >0 node.right = add(node.right, e); }
不知道我的理解正不正确。
022020-05-16 -
liuyubobobo
2020-03-04
我测试了一下,课程的官方代码没有问题。请你尝试下载课程的官方代码,在你的环境下运行,看是否有同样的问题?如果没有,请仔细调试比对,看自己的代码哪里有问题。
尤其是看一下 add 函数中 size 的维护是否正确,因为你的结果显示,插入的单词即使已经在 BST 中,你的 size 也做了 ++。
本小节课程官方代码传送门:https://git.imooc.com/coding-207/coding-207/src/master/07-Set-and-Map/01-Set-Basics-and-BSTSet
加油!:)
00
相似问题