避免使用索引项的重复条目
avoiding duplicate entries using index items
本文关键字:索引 更新时间:2023-10-16
我正在读robert sedwick关于算法的书中关于队列的内容
当数据结构中的项本身是数组索引时我们将此类项目称为"索引项目"。通常,我们有一组M对象,保存在另一个数组中,我们需要通过广义队列结构作为更复杂算法的一部分。对象按索引放在队列中,并在移除,并且每个对象将被精确地处理一次。通常队列中没有重复项的数组索引实现了这一目标直接地
我在最后一句中的问题是"对象按索引放在队列中,当它们被移除时进行处理,并且每个对象都要精确地处理一次"?我们只使用一个数组而不是两个数组?
作者所说的"通常在没有重复的队列中数组索引直接实现了这个目标"是什么意思?
感谢您的时间和帮助
好吧,作者想解决处理存储在数组中的数据的算法任务:
+-----+-----+---------+-----+
Data = | Foo | Bar | Grandma | Zip |
+-----+-----+---------+-----+
我们需要按照算法确定的某种顺序处理这些数据,接下来我们要处理一些"待办事项"队列。复制实际的数据对象可能是不希望的或不可能的(对象可能很大或不可复制)。索引的队列起到了作用:
--+---+---+--
ToDo = [2] --> | 0 | 3 | -----> (1)
--+---+---+--/
队列告诉我们Data[1]
是下一个要处理的项目。Data[3]
和Data[0]
正在等待,我们刚刚决定Data[2]
作为最近的任务出现。
(例如,队列用于树结构的广度优先搜索:您从一侧的队列中弹出下一个要访问的节点,并在另一侧推送该节点的子节点,以备将来使用。每个节点应该只访问一次。上述索引队列允许您将实际树元素存储在Data
数组中,并通过ly)
相关文章:
- 数组索引的值没有增加
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 查找最接近的大于当前数字的数字的索引
- 在C++中调整向量中的索引
- 重载元组索引运算符-C++
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为std::string的某个索引赋值
- 并行用于C++17中数组索引范围内的循环
- 跟随整数索引列表的自定义类迭代器
- 如何在for循环中包含两个索引值的测试条件
- D3D11-将混合权重和索引传递到顶点着色器
- 将转换字符键入 int 以用作向量C++的索引
- 在 C++ 中访问数组负索引处的内存不会返回垃圾
- 如何为圆环创建索引
- 在子集化后将包含索引号的列表列表映射到标准索引序列
- 查找字符在两个索引之间出现的次数
- Azure Kinect 使用正文索引映射裁剪正文
- 如何查找哪个类对象位于数组的特定索引上(多态性)
- 数组索引重载错误
- 如何在 std::vector 中找到<bool>哪些索引是真的?