data-structures 相关问题

数据结构是以允许有效地查询和/或更新该数据的特定属性的方式组织数据的方式。

红色黑树的大块节点

def getTradeValue(transaction): return transaction[1] * transaction[2] RED = True BLACK = False class RBTree: def __init__(self, transaction): self.key = getTradeValue(transaction) self.value = [transaction] self.right = None self.left = None self.color = RED def isRed(self): if self is not None: return self.color def rotateLeft(self): rotatedTree = self.right self.right = rotatedTree.left rotatedTree.left = self rotatedTree.color = self.color self.color = RED return rotatedTree def rotateRight(self): rotatedTree = self.left self.left = rotatedTree.right rotatedTree.right = self rotatedTree.color = self.color self.color = RED return rotatedTree def colorFlip(self): self.color = RED self.right.color = BLACK self.left.color = BLACK def put(self, transaction): if self is None: return RBTree(transaction) if getTradeValue(transaction) == self.key: self.value.append(transaction) elif getTradeValue(transaction) < self.key: if self.left is None: self.left = RBTree(transaction) else: self.left.put(transaction) elif getTradeValue(transaction) > self.key: if self.right is None: self.right = RBTree(transaction) else: self.right.put(transaction) if (self.right and self.right.isRed()) and (self.left and not self.left.isRed()): self = self.rotateLeft() if (self.left and self.left.isRed()) and (self.left.left and self.left.left.isRed()): self = self.rotateRight() if (self.left and self.left.isRed()) and (self.right and self.right.isRed()): self.colorFlip() return self def inorder(self): if self: if self.left: print(self.left.inorder()) print(self.key, " ", self.value, " ", self.color) if self.right: print(self.right.inorder()) def print2DUtil(self, space) : COUNT = [10] # Base case if self is None : return # Increase distance between levels space += COUNT[0] # Process right child first if self.right: self.right.print2DUtil(space) # Print current node after space # count print() for i in range(COUNT[0], space): print(end = " ") print(self.key,self.color) # Process left child if self.left: self.left.print2DUtil(space) bst = RBTree(["", 1, 80, ""]) bst.color = BLACK bst = bst.put(["", 1, 9, ""]) bst.color = BLACK # bst.inorder() # print("--------") bst = bst.put(["", 1, 4, ""]) bst.color = BLACK # bst.inorder() bst.print2DUtil(0) print("--------") bst = bst.put(["", 1, 3, ""]) bst.color = BLACK # bst.inorder() bst.print2DUtil(0) print("--------") bst = bst.put(["", 1, 100, ""]) bst.color = BLACK # bst.inorder() bst.print2DUtil(0) print("--------") bst = bst.put(["", 1, 17, ""]) bst.color = BLACK bst.print2DUtil(0) # bst.inorder() print("--------") bst = bst.put(["", 1, 2, ""]) bst.color = BLACK # bst.inorder() bst.print2DUtil(0) print("--------") # bst.print2DUtil(0)

回答 2 投票 0

Java中有数据结构可以容纳4个以上的值? so沿着

需要这可以减少我拥有的其他语句的数量。我希望能够做以下事情。 检查数据结构包含匹配特定值的元素,如果确实如此,则将链接(字符串)分配给变量,然后将代码和消息添加到与该链接相关的另一个变量中。 如果不是要实现这一目标的好锻炼吗?

回答 3 投票 0



使用numpy

可以创建一个像Python词典这样的结构,但使用其中的numpy阵列? 例如,如果我们有2个numpy.ndarray命名为键和val,我们如何使用它们来创建类

回答 1 投票 0

快速算法用于重复计算百分位数?

在算法中,我必须在添加一个值时计算数据集的第75个百分位数。现在我正在这样做: 获取值x 将X插入已经排序的阵列中的X 交换x down unt ...

回答 3 投票 0




将偶数数字换成链接列表的背面

我刚刚开始了我的大学的数据结构和算法的课程,并在将偶数值的节点转移到我的链接列表的背面时遇到了一些麻烦。启用...

回答 1 投票 0

(数据结构)将均匀的数字转移到链接列表的背面

我刚刚开始了我的大学的数据结构和算法的课程,并且在将偶数值的节点转移到我的链接列表的背面时遇到了麻烦。由于某种原因,该功能似乎是

回答 1 投票 0



线性数据结构和非线性数据结构

我不了解线性数据结构和非线性数据结构差异 我想学习编程。我想知道数据。我想了解教育。 有人可以解释

回答 1 投票 0


给定一个包含 n 个整数的数组,如何找到任意两个索引 i<j where the absolute difference between the elements equals the distance between i-j

给定 [-n²,n²] 范围内的 n 个整数数组,如何找到任意两个索引 i 给定 [-n²,n²] 范围内的 n 个整数数组,如何找到任意两个索引 i 我正在寻找 O(n) 的时间复杂度和空间复杂度。 我尝试使用基数排序对负数元素和正数元素进行排序;然后我反过来评估以 2 为底的负数表示。到目前为止,这就像 O(n)。 然后我有两个指针并搜索 i-j 等于 A[i]-A[j],其中 i,j 根据输入数组顺序(而不是排序后的顺序)。但这并没有让我更接近解决方案。 这如何在 O(n) 内完成? 为了有效地实现 O(n) time complexity 和 O(n) space complexity,您可以使用 hashmap(字典)来跟踪先前看到的元素的索引。 这是我的分段: 使用两个哈希图(字典) 一个用于存储 𝐴[𝑘]−𝑘 的值, 一个用于存储 𝐴[𝑘]+𝑘 的值 当你浏览数组时: 计算 𝐴[𝑘]−𝑘 并检查它是否存在于哈希图中: 如果是,则您找到了两个索引 i 和 j。 计算𝐴[𝑘]+𝑘并检查它是否存在于哈希图中: 如果是,则您找到了两个索引 i 和 j。 如果都没有找到,则将 𝐴[𝑘]−𝑘 和 𝐴[𝑘]+𝑘 添加到哈希图中,并以索引 k 作为值。

回答 1 投票 0

在资源非常有限的老式系统上,我可以使用哪种类型的静态关联数组实现?

我正在开发一个用 C 语言编写的项目,该项目将部署在资源非常有限的老式系统上。目标系统有一个 16 MHz 处理器,我的应用程序有 1 MB 的限制...

回答 1 投票 0

区间树、线段树、芬威克树相同吗?

今天我听了一个关于芬威克树(二叉索引树)的讲座,老师说这棵树是区间树和线段树的推广,但是我对这三个数据的实现

回答 3 投票 0

初始化和更新复杂字典的两种方法:try/ except 或 .get(x)

在代码审查中,讨论了以下两种初始化复杂字典的方法。讨论内容包括性能、什么容易阅读、什么不容易阅读、哪种方法最不容易出错

回答 1 投票 0

获取属性错误:'NoneType'对象在avl树中没有属性'rightnode'

我目前正在学习数据结构,并且在AVL树上遇到了问题。 代码: from myqueue import Queue # 我的自定义队列通过链表实现 AVL 类: def __init__(self,dat...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.