【问题标题】:persisting and restoring data in data structures在数据结构中持久化和恢复数据
【发布时间】:2018-08-28 22:10:42
【问题描述】:

我是数据结构的新手,我知道列表、堆栈、队列、树等数据结构应该在内存中访问,有some suggestions关于如何在数据库中持久化数据结构。

所以问题是:

  1. 要持久化数据结构,必须以一种对以后重构最有效的方式进行解构并保存到数据库?

  2. 要恢复数据结构的数据,必须从数据库中读取数据,然后在系统重启/故障后重新构建数据结构?

  3. 这是一种常见的做法,还是有一种适当的方法可以防止数据结构的重建(因为它们会消耗计算能力)?

【问题讨论】:

    标签: data-structures


    【解决方案1】:
    1. 取决于数据结构 对于列表、堆栈、队列、树等结构...它们通常使用指针(指向下一个节点、指向子节点等的指针)实现
      这些仅存在于内存中的指针包含有关数据结构的信息,因此您需要一种有效的方法来转换此结构信息
      例如检查 leetcode 上的树序列化:
      https://leetcode.com/faq/#binary-tree
      对于可以在没有指针的连续内存段中实现的数据结构,如字符串、二进制堆等,您不需要此过程,只需将内存段的位保存在数据库中即可

    2. 是的,这是很常见的做法,过去 XML 一直是首选的格式,JSON 是最近流行的 许多服务通过在数据库中获取持久的 XML 数据、在内存中构建数据结构、执行一些操作然后保存结果来工作

    如果您考虑一下,整个网络的工作方式是这样的: https://en.wikipedia.org/wiki/Document_Object_Model
    每个 HTML 页面实际上都是一个序列化的树形数据结构,由浏览器在内存中重建

    【讨论】:

    • 感谢您指出一些数据结构依赖于指针这一事实,当我考虑整个问题时,我并没有真正想到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多