问题标签 [data-structures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

Filter by
Sorted by
Tagged with
0 投票
7 回答
29332 浏览

Python中最有效的图数据结构是什么?

我需要能够在 python 中操作一个大的(10^7 个节点)图。每个节点/边对应的数据是最少的,比如说,少量的字符串。就内存和速度而言,最有效的方法是什么?

dict 的 dict 更灵活、更易于实现,但我直观地希望列表列表更快。list 选项还要求我将数据与结构分开,而 dicts 将允许以下内容:

你有什么建议?


是的,我应该更清楚我所说的效率是什么意思。在这种特殊情况下,我的意思是随机访问检索。

将数据加载到内存中并不是一个大问题。这是一劳永逸的。耗时的部分是访问节点,以便我可以提取信息并测量我感兴趣的指标。

我没有考虑将每个节点都设为一个类(所有节点的属性都相同),但似乎这会增加额外的开销层?我希望有人对他们可以分享的类似案例有一些直接的经验。毕竟,图是 CS 中最常见的抽象之一。

0 投票
4 回答
7907 浏览

将 Stream 数据映射到 C# 中的数据结构

有没有办法将流或数组上收集的数据映射到数据结构,反之亦然?在 C++ 中,这只是将指向流的指针转换为我想要使用的数据类型(反之亦然)的问题,例如:在 C++ 中

显然,除非您在读取传入数据时确定流数据的质量,否则 C++ 方式是非常不安全的,但是对于传出数据来说,超级快速和简单。

0 投票
1 回答
1054 浏览

二进制文件布局参考

关于二进制文件布局结构的一些好的信息来源在哪里?

如果我想提取BTrieve索引文件、解析MP3标题等。从哪里获得可靠的信息?

0 投票
4 回答
1361 浏览

用于快速插入大量节点的最佳自平衡 BST

我已经能够BST通过几个来源找到关于几个 self-balancing 的详细信息,但是我没有找到任何好的描述来详细说明在不同情况下哪个最好使用(或者如果它真的无关紧要)。

我想要一个BST最适合存储超过一千万个节点的设备。节点的插入顺序基本上是随机的,我永远不需要删除节点,所以插入时间是唯一需要优化的东西。

我打算用它来存储以前访问过的游戏状态在一个益智游戏中,这样我就可以快速检查以前的配置是否已经遇到过。

0 投票
5 回答
8216 浏览

良好的 C 类 STL 库

具有向量、双端队列、堆栈、哈希图、树形图、集合等数据结构的 C 语言库有哪些好的?请使用纯 C,并且与平台无关。

0 投票
5 回答
59958 浏览

从字节数组中读取 C# 中的 C/C++ 数据结构

从数据来自 C/C++ 结构的 byte[] 数组填充 C# 结构的最佳方法是什么?C 结构看起来像这样(我的 C 非常生锈):

并会填充这样的内容:

如果作为 byte[] 数组传递,则复制OldStuff到的最佳方法是什么?NewStuffOldStuff

我目前正在做类似以下的事情,但感觉有点笨拙。

有没有更好的方法来做到这一点?


使用BinaryReader该类是否会比固定内存和使用提供任何性能提升Marshal.PtrStructure

0 投票
10 回答
5467 浏览

使用图和树可以解决或更容易解决哪些问题?

这两种数据结构可以解决的最常见问题是什么?

对我来说,对以下书籍也有建议会很好:

  • 实施结构
  • 实施并解释使用它们的算法的推理
0 投票
11 回答
52301 浏览

在 C++ 中创建稀疏数组的最佳方法是什么?

我正在研究一个需要处理巨大矩阵的项目,特别是用于 copula 计算的金字塔求和。

简而言之,我需要在矩阵(多维数组)中的大量零中跟踪相对少量的值(通常为 1,在极少数情况下超过 1)。

稀疏数组允许用户存储少量值,并将所有未定义的记录假定为预设值。由于物理上不可能将所有值存储在内存中,因此我只需要存储少数非零元素。这可能是几百万个条目。

速度是重中之重,我还想在运行时动态选择类中变量的数量。

我目前在一个使用二叉搜索树(b-tree)来存储条目的系统上工作。有人知道更好的系统吗?

0 投票
5 回答
1593 浏览

抽象季节/节目/剧集数据的最佳方法

基本上,我已经用 Python 为 www.thetvdb.com 编写了一个 API。当前的代码可以在这里找到。

它根据请求从 API 获取数据,并且必须以某种方式存储数据,并通过执行以下操作使其可用:

在类中抽象这些数据的“最佳”方法是Tvdb()什么?

我最初使用了一个Dict()自动创建子字典的扩展(所以你可以做x[1][2][3][4] = "something"而不必做if x[1].has_key(2): x[1][2] = []等等)

然后我只是通过做存储数据self.data[show_id][season_number][episode_number][attribute_name] = "something"

这工作正常,但没有简单的方法来检查是否x[3][24]应该存在(所以我不能提出 season_not_found 异常)。

目前它使用四个类:ShowContainerShow和。每一个都是一个非常基本的字典,我可以很容易地在其中添加额外的功能(例如函数)。每个都有,和。SeasonEpisodesearch()Show()__setitem____getitem_has_key

这工作得很好,如果它的self.data字典中有那个季节,我可以检查 Shows,如果没有,raise season_not_found. 我也可以检查Season()它是否有那一集等等。

现在的问题是它把自己呈现为一个字典,但没有所有的功能,而且因为我覆盖了__getitem__and__setitem__函数,很容易意外递归调用__getitem__(所以我不确定扩展Dict类是否会导致问题)。

另一个小问题是将数据添加到 dict 比旧Dict方法(原方法self.data[seas_no][ep_no]['attribute'] = 'something')要多得多。见_setItem_setData。这还不错,因为它目前只是一个只读的 API 接口(因此 API 的用户应该只检索数据,而不是添加更多数据),但它几乎没有......优雅。

我认为系列类系统可能是最好的方法,但是有没有人有更好的存储数据的想法?并且扩展ShowContainer/etc 类Dict会导致问题吗?

0 投票
5 回答
477705 浏览

JavaScript 中的图形可视化库

我有一个表示有向图的数据结构,我想在 HTML 页面上动态呈现它。这些图通常只有几个节点,可能是最上端的十个节点,所以我的猜测是性能不会有什么大不了的。理想情况下,我希望能够将它与 jQuery 挂钩,以便用户可以通过拖动节点来手动调整布局。

注意:我不是在寻找图表库。