Data structures 如何实现高效的类似excel的应用程序

Data structures 如何实现高效的类似excel的应用程序,data-structures,Data Structures,我需要实现一个高效的excel类应用程序。 我正在寻找一种数据结构,它将: 以有效的方式存储数据(例如,我不想 为未使用的单元预先分配内存) 当用户更改其中一个单元格中的公式时,允许高效更新 有什么想法吗 谢谢, Li在这种情况下,您正在寻找在线服务。这是一类结构,允许您将一小块数据(在本例中,表示单元格的坐标)与另一小块数据(在本例中,表示单元格内容或公式)关联起来。“在线”形容词表示可以实时添加、删除或更改词典条目 有很多这样的结构。命名一些更常见的:哈希表、二叉树、跳过列表、链表,甚至

我需要实现一个高效的excel类应用程序。 我正在寻找一种数据结构,它将:

  • 以有效的方式存储数据(例如,我不想 为未使用的单元预先分配内存)
  • 当用户更改其中一个单元格中的公式时,允许高效更新
有什么想法吗

谢谢,
Li

在这种情况下,您正在寻找在线服务。这是一类结构,允许您将一小块数据(在本例中,表示单元格的坐标)与另一小块数据(在本例中,表示单元格内容或公式)关联起来。“在线”形容词表示可以实时添加、删除或更改词典条目

有很多这样的结构。命名一些更常见的:哈希表、二叉树、跳过列表、链表,甚至数组中的列表

当然,其中一些比其他更有效(取决于实现和条目数)。通常我使用哈希表来解决这类问题


但是,如果您需要执行范围查询“修改此范围内的所有单元格”,则最好使用二叉树或更复杂的空间结构,但考虑到问题的简单要求,这不太可能。

谢谢,这是我最初的想法,但后来我在思考细节时感到困惑……可能是因为我没有想到“在线”词典。那么您认为我应该使用一个哈希表,它在每个条目中都包含另一个哈希表吗?例如,如果用户填写单元格编号:i-3,我是否要向第一级哈希添加一个以“i”为键的条目,然后将该条目的值设置为以“3”为键的第二级哈希对象?第一部分数据是整个2D单元格引用——I3。您不需要两个单独的词典或词典的层次结构。只要每个单元格都有一个唯一的标识符(例如I3是唯一的标识符),就可以了。例如,将其存储为行和列,允许行和列为16位整数。然后将它们猛击在一起,形成一个32位整数。该整数将成为该单元格的查找值。