【发布时间】:2011-04-02 10:35:27
【问题描述】:
通常“可扩展”网格表示为列表列表(行列表,每行都有单元格列表),这些列表是某种链表。
在此数据结构中操作(删除、插入)行既简单又便宜,只需重新链接以前的节点即可,但是当涉及列时,例如删除一列,这将成为一个很长的操作,我需要“循环”所有行以删除该索引单元格。显然这不是好的行为,至少对我来说是这样。
我在这里不是在谈论数据库;我发现的一个很好的例子是一些文本文件到文本编辑器中,(据我所知)文本编辑器主要将行分成行并且很容易删除行。我希望删除一列与删除某些行一样便宜且高效。
最后,我需要一些多维网格,但我认为任何二维简单网格都适用于 MD,对吗?
【问题讨论】:
-
所以你想要 O(1) 删除行和列?
-
是的,这就是我要问的问题。
-
谢谢大家,我在以下所有答案中都发现了非常有用的想法。并且不能真正推荐其中之一。都是很好的答案,需要阅读此类问题。
标签: algorithm data-structures grid multidimensional-array linked-list