【发布时间】:2018-11-24 20:40:03
【问题描述】:
我开始思考,如果我们将数据存储在文本文件中,它会以线性方式存储。虽然您可以按排序顺序存储内容,但您要查找的内容总是有可能在文件中最后出现。
在我的算法课程中,有很多关于在 Java/python/C 程序中组织数据的有效方法的讨论。您可以创建一个二叉搜索树对象,一切都很好。但是没有提到以有效方式存储所述数据的硬拷贝。
我的问题是:有没有办法以二叉搜索树格式存储一些数据的硬拷贝?这样当你去读取Java中的文件时,Java可以快速地向左或向右“跳跃”,并以高效的方式处理数据?
【问题讨论】:
-
您可以将查找保存在主文件中。然后将数据存储到不同的桶文件中。
-
你可以用一个数组来表示一个 BST。节点
arr[i]的子节点位于arr[2*i + 1]和arr[2*i+2]。如果您的意思是存储您创建的对象的表示,许多语言都有一些序列化库(例如,python 中的pickle)。 -
序列化似乎是我要找的。要研究那个。谢谢!
-
您还可以查看数据库如何存储数据。
-
在 Java 中查找
RandomAccessFile。或fseek在 C 中。
标签: java python c text-files binary-search-tree