【发布时间】:2018-05-23 05:53:49
【问题描述】:
我刚刚学会了如何创建一个二进制搜索数据结构,它将用于存储字典中的数千个单词。我遇到的问题是计算添加和删除数据需要很长时间。通常 199263 毫秒或 200 秒计算 100000 个单词。有人告诉我,拥有一棵可以自我平衡的树将提高效率并使操作更快。
我的问题是如何使我的树自动平衡以使其高效。通过消除重复的单词使树的高度更短,我做了一些小的改进。
如果有人可以就如何使树高效以及如何在 java 中实现平衡树给我建议。
【问题讨论】:
-
我看到了两种主要的方法:A. 每次添加元素时自我平衡,或 B. 经常将树重新制作为平衡
-
见Self-balancing binary search tree。这可能非常复杂。
-
到目前为止,是否有任何答案回答了您的问题?如果是这样,请接受最有帮助的答案。
-
Java TreeSet 或 TreeMap 已经使用了平衡的二进制 AVL tree。
-
普通二叉树的一个问题是:当按顺序写入文件时,下次从这样的有序文件中读取实际上会创建列表,即只有左分支或右分支的树。
标签: java tree binary-tree binary-search-tree