问题标签 [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.
c# - 键值对数据结构的最佳实现?
所以我最近一直在研究 C#,所有的通用集合都让我有点困惑。假设我想表示一种数据结构,其中树的头部是一个键值对,然后在其下方有一个可选的键值对列表(但不超过这些级别)。这会合适吗?
这只是传递数据的简单分流。
java - 如何在 Java 中创建链表数据结构?
用Java制作链表的最佳方法是什么?
c# - .Net 中是否有“Set”数据结构?
理想情况下,我正在寻找一个模板化的逻辑 Set 类。它将具有所有标准集合操作,例如 Union、Intersection 等,并折叠重复项。
我最终基于 C# Dictionary<> 创建了我自己的集合类 - 仅使用键。
c# - C# 中的老化数据结构
我想要一个允许查询过去X分钟内有多少项目的数据结构。一个项目可能只是一个简单的标识符或更复杂的数据结构,最好项目的时间戳将在项目中,而不是存储在外部(作为散列或类似的,不希望有多个项目具有相同的问题时间戳)。
到目前为止,似乎使用 LINQ 我可以轻松过滤时间戳大于给定时间的项目并聚合计数。尽管我对尝试将 .NET 3.5 特定的东西应用到我的生产环境中犹豫不决。对于类似的数据结构,还有其他建议吗?
我感兴趣的另一部分是老化旧数据,如果我只要求不到 6 小时前的项目计数,我希望从我的数据结构中删除任何比这更旧的数据,因为这可能成为一个长期运行的程序。
data-structures - Haskell 的代数数据类型
我试图完全理解 Haskell 的所有概念。
代数数据类型在哪些方面类似于泛型类型,例如,在 C# 和 Java 中?它们有什么不同?他们到底有什么代数?
我熟悉通用代数及其环和域,但我对 Haskell 的类型如何工作只有一个模糊的概念。
mysql - 如何在 MySQL 数据库中维护递归不变量?
我有一个在 MySQL 数据库中编码为边的树:
对于树上的每一片叶子,items.tot
都是由某人设置的。对于内部节点,items.tot
需要是其子节点的总和。重复运行以下查询将生成所需的结果。
(请注意,这实际上不起作用,但这不是重点)
假设数据库存在并且已经满足不变量。
问题是:
在保持此要求的同时更新数据库的最实用方法是什么?更新可能会移动节点或改变
tot
叶节点上的值。可以假设叶节点将保留为叶节点,内部节点将保留为内部节点,整个事物将保留为一棵适当的树。
我曾经有过的一些想法:
- 完全失效,在任何更新后,重新计算一切(嗯......不)
- 在 items 表上设置触发器以更新已更新的任何行的父级
- 这将是递归的(更新触发更新,触发更新,...)
- 不起作用,MySQL 无法更新启动触发器的表
- 设置触发器以安排更新任何已更新行的父级
- 这将是迭代的(从计划中获取一个项目,处理它以安排更多项目)
- 这是什么开始?信任客户端代码来做对吗?
- 一个优点是,如果更新正确排序,则需要计算机计算的总和更少。但这种排序本身就是一个复杂的问题。
一个理想的解决方案将推广到其他“聚合不变量”
FWIW我知道这“有点过火”,但我这样做是为了好玩(有趣:动词,通过这样做找到不可能的事情。:-)
php - PHP 有内置的数据结构吗?
我正在查看PHP Manual,但没有看到大多数语言都有的数据结构部分,例如列表和集合。我只是瞎了眼还是PHP没有内置这样的东西?
data-structures - 存储树结构的模型有哪些,它们的特点是什么?
到目前为止,我已经遇到过邻接表、嵌套集和嵌套间隔作为在数据库中存储树结构的模型。我对这些非常了解,并且已经将树木从一棵迁移到另一棵。
其他流行的型号是什么?他们的特点是什么?关于这个主题有哪些好的资源(书籍、网络等)?
我不仅在寻找数据库存储,而且想扩展我对树木的一般知识。例如,我知道嵌套集/间隔特别有利于关系数据库存储,并问自己,在其他情况下它们实际上是一个糟糕的选择吗?
c - 什么是 C 中好的开源 B-tree 实现?
我正在寻找用 C 编写的 B 树库的精益且构建良好的开源实现。它需要在非 GPL 许可下才能用于商业应用程序。理想情况下,该库支持将 B-tree 索引存储/操作为磁盘文件,以便可以使用可配置(即:最小)RAM 占用空间构建大型树。
注意:由于似乎有些混淆,二叉树和 B-Tree不是一回事。
data-structures - 如何有效地跟踪集合中的最小元素?
在编程问题的脉络中:假设有一组可以相互比较和排序的对象。在添加对象并偶尔删除当前最小元素时,跟踪集合中最小元素的最有效方法是什么?