我是数据结构的新手,并且了解应该在内存中访问列表,堆栈,队列,树等数据结构,有关如何将数据结构持久存储在数据库中的问题some suggestions。 / p>
所以问题是:
要保留数据结构,必须以最有效的方式对其进行解构并保存到数据库中,以便以后进行重组?
要恢复数据结构的数据,必须先从数据库中读取数据,然后在重新启动/故障后系统启动时再次重建数据结构?
答案 0 :(得分:1)
这取决于数据结构
对于列表,堆栈,队列,树等结构,它们通常使用指针(指向下一个节点的指针,指向子节点的指针等)实现。
这些仅存在于内存中的指针包含有关数据结构的信息,因此您将需要一种有效的方法来转换此结构信息
例如检出leetcode上的树序列化:
https://leetcode.com/faq/#binary-tree
对于可以在没有指针(例如字符串,二进制堆等)的连续内存段中实现的数据结构,您不需要此过程,只需将内存段的位保存在数据库中
是
是的,这是非常普遍的做法,从历史上看,XML一直是这种格式的选择,JSON在最近更流行 许多服务的工作方式是:获取数据库中的持久XML数据,在内存中构建数据结构,执行一些操作,然后保存结果
如果您考虑一下,整个网络的工作方式如下:
https://en.wikipedia.org/wiki/Document_Object_Model
每个HTML页面实际上都是序列化的树数据结构,您的浏览器会在内存中对其进行重构