data-structures相关内容

用递归函数在Python中实现决策二叉树

我是数据结构的初学者,我正在使用Python从列表创建决策二叉树,列表的元素应该在叶子中。列表的长度始终是配对数字。 我创建了一个二叉树的数据结构: class BinaryTree: def __init__(self, value): self.value= value self.left = None self.right = None ..
发布时间:2022-03-13 11:01:40 Python

有没有可能设计一个节点有无限多个子节点的树呢?

如何设计具有大量(无限数量)分枝的树? 我们应该使用哪种数据结构存储子节点? 推荐答案 您实际上不能存储无限多的子项,因为内存无法容纳这些子项。但是,您可以无限制地存储多个子节点,也就是说,您可以创建树,其中每个节点可以有任意数量的子节点,并且没有固定的上限。 有几种标准方法可以做到这一点。您可以让每个树节点存储其所有子节点的列表(可能是动态数组或链表),这通常是通过尝试来 ..
发布时间:2022-03-13 10:42:47 其他开发

为什么字典在 C# 中优于 Hashtable?

在大多数编程语言中,字典比哈希表更受欢迎.背后的原因是什么? 解决方案 就其价值而言,字典是(概念上)一个哈希表. 如果您的意思是“为什么我们使用 Dictionary 类而不是 Hashtable 类?",那么答案很简单:Dictionary 是泛型类型,Hashtable 不是.这意味着您可以使用 Dictionary 获得类型安全,因为您不能将任何随 ..
发布时间:2022-01-31 15:56:15 C#/.NET

std::list 和 std::vector - 两全其美?

向量与STL中的列表: std::vector:最后的插入是恒定的,摊销的时间,但其他地方的插入是一个代价高昂的 O(n). std::list:您不能随机访问元素,因此获取列表中的特定元素可能会很昂贵. 我需要一个容器,这样您既可以在 O(1) 时间内访问任何索引处的元素,也可以在 O(1) 时间内在任何索引处插入/删除元素.它还必须能够管理数千个条目.有这样的容器吗? ..
发布时间:2022-01-24 20:55:54 C/C++开发

寻找具有 O(1) 索引和 O(log(n)) 插入和删除的数据容器

我不确定这是否可能,但对我来说似乎有点合理,我正在寻找一种允许我执行这些操作的数据结构: 用 O(log n) 插入一个项目 用 O(log n) 移除一个项目 查找/编辑 O(1) 中的第 k 个最小元素,用于任意 k(O(1) 索引) 当然,编辑不会导致元素顺序发生任何变化.使之成为可能的原因是我将以递增的顺序一个接一个地插入元素.因此,例如,如果我尝试第五次插入,我确信在这之 ..
发布时间:2022-01-24 20:51:09 其他开发

列表或容器 O(1)-ish 插入/删除性能,具有数组语义

我正在寻找一个提供列表语义但也允许数组语义的集合.假设我有一个包含以下项目的列表: 苹果橙胡萝卜梨 那么我的容器数组将: container[0] == 苹果容器[1] == orangle容器[2] == 胡萝卜 然后说我删除橙色元素: container[0] == 苹果容器[1] == 胡萝卜 我想折叠数组中的间隙而不必进行显式调整大小,即如果我删除容器 [0],则容器折叠,因此 ..
发布时间:2022-01-24 20:39:28 Java开发

如何用 Python 保存数据?

我正在编写一个 Python 程序,并希望用户能够保存他们正在处理的数据.我研究过 cPickle;看起来这将是一种快速简便的数据保存方法,但似乎不安全.由于可以腌制整个函数、类等,我担心流氓保存文件可能会将有害代码注入程序.有没有办法可以防止这种情况发生,或者我应该研究其他保存数据的方法,例如直接转换为字符串(这似乎也不安全)或创建 XML 层次结构,然后将数据放入其中. 我是python ..
发布时间:2022-01-24 18:25:59 Python

迭代std :: bitset中真实位的有效方法?

有没有一种方法可以迭代(可能很大)std::bitset,它在 设置为 true 的位数中 线性/em>?我想避免检查位集中的每个位置.迭代应该连续返回每个设置为 true 的位的索引. 解决方案 标准位向量不支持对真实位的有效迭代 - 运行时间总是 O(n),其中 n 是总位数,它没有对 k 的依赖.但是,也有专门的数据结构,例如 van Emde Boas 树 和 y-fast 尝试, ..
发布时间:2022-01-24 11:43:44 C/C++开发

是否可以在 Julia 中对字典进行排序?

我使用 zip() 之类的 从两个数组中创建了一个字典 list1 = [1,2,3,4,5]list2 = [6,7,8,9,19]字典1 = 字典(zip(list1,list2)) 现在我想按 key(list1) 或 list2 对字典进行排序.有人可以告诉我一种方式或功能,如何实现吗? 解决方案 Sort 也需要一个 by 关键字,这意味着你可以这样做: 朱莉娅>排序(收 ..
发布时间:2022-01-23 19:35:54 其他开发

在 C# 中锁定空闲堆栈和队列

有谁知道是否有任何可用于 .NET 的无锁容器库? 最好是被证明有效且比我们在 .NET 中使用的同步包装器更快的东西. 我在 .NET 上找到了一些文章,但没有一篇指定任何速度基准测试,也没有激发人们对其可靠性的信心. 谢谢 解决方案 迟到了,但总比没有好,我认为我会将 Julian Bucknalls 的文章添加到此列表中. 但他没有性能数据.在我对他的结构的测 ..

使用 Stacks Java 中缀到 Postfix

我正在尝试编写一个程序来将中缀表达式转换为后缀表达式. 我使用的算法如下: 1.创建堆栈2. 对于表达式中的每个字符 t- 如果 t 是操作数,则将其附加到输出- 否则,如果 t 是 ')',则从堆栈中弹出直到遇到 '(' 并追加它到输出.不要将“("附加到输出中.- 如果 t 是运算符或 '('-- 如果 t 的优先级高于栈顶,则 push t到堆栈上.-- 如果 t 的优先级低于栈顶, ..
发布时间:2022-01-22 13:00:28 Java开发

单调的堆栈和队列.定义和例子

究竟什么是单​​调堆栈?(例如,它与单调队列有何不同?) 例如考虑以下整数数组:[0, 2, 1, 3, 4].如果我从左到右处理这个数组并将其插入到单调递减的堆栈中,我应该在堆栈中看到什么,为什么? 这里Python 中单调递减堆栈的示例,显然用于解决 奇偶跳转的许多解决方案问题: def make(A):结果 = [无] * Nstack = [] # 不变式:栈在递减对于 A ..
发布时间:2022-01-22 12:57:32 其他开发