程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了实现 Excel 电子表格的最佳数据结构大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决实现 Excel 电子表格的最佳数据结构?

开发过程中遇到实现 Excel 电子表格的最佳数据结构的问题如何解决?下面主要结合日常开发的经验,给出你关于实现 Excel 电子表格的最佳数据结构的解决方法建议,希望对你解决实现 Excel 电子表格的最佳数据结构有所启发或帮助;

我们如何通过创建和删除行以及创建和删除单元格来实现 Excel 电子表格,还可以修改任何单元格内的数据。 我一直在寻找最好的数据结构来实现这一点。

解决方法

我认为问题陈述有点含糊。我们没有关于将非常频繁的操作类型甚至此 DS 将保存的数据量的任何信息。

所以假设可以有相当数量的数据。另外还有行和单元格的添加和删除操作。

对于excel电子表格,如果我必须使用自定义数据结构来实现它,我会将每一行作为链接列表的一个节点。这很有用,因为与数组(n 维)相反,可以以非连续方式分配内存。有了这个好处,它会让添加和删除行变得更加容易。

在每个节点内,我们可以有一个字符串数组来保存单元格值和一个 Id 字段来保存行的 Id。

DS 的头节点将列名作为其字符串数组的值。所以在某种程度上,每一列都映射到数组的一个索引

添加一行:将插入到链表中。创建一个新行并追加到最后。 删除一行:与删除链表中的节点相同。

添加/更新单元格值:您基本上知道行 ID,您有列名,因此您可以从头节点知道数组中列的索引。所以一旦你有了行对应的节点,访问字符串数组的索引来添加/读取/更新/删除单元格的值。

为了优化节点访问,您可以在实际链表上保留索引,以便按行 ID 轻松定位节点。一些更多的优化将存储 row-Id 到节点指针映射辅助映射或数组中的某个位置,以便在它们之间插入行也很快。

但是,我会重申应该在用例的基础上完成实现。例如,如果有大量的列添加/删除操作,它会很慢。每种用例都有不同的权衡。

,

我认为最简单的方法是简单地使用 JSON 结构来保存每一行。列名作为键,单元格值作为值。这很容易处理空/空值。

电子表格本质上类似于表格,可以对任何行的任何单元格进行更改。因此,使用简单的列表结构不会太糟糕。这样做的缺点是删除和插入行之间的性能不佳。但是在末尾插入行,这是最常见的用例,并且可以很容易地修改单元格。

为了加快插入和删除的速度,链表结构会有所帮助,但它会对随机访问产生不利影响,因此一个简单的 json 对象列表会更好。

大佬总结

以上是大佬教程为你收集整理的实现 Excel 电子表格的最佳数据结构全部内容,希望文章能够帮你解决实现 Excel 电子表格的最佳数据结构所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:实现