【问题标题】:What is satellite information in data structures?什么是数据结构中的卫星信息?
【发布时间】:2013-01-11 04:33:37
【问题描述】:

摘自 Thomas Cormen 的算法简介:

"为了简单起见,我们假设,就像我们对二叉搜索树和红黑 树,任何与密钥相关的“卫星信息”都存储在同一个 节点作为键。在实践中,每个键实际上可能只存储一个指向 另一个磁盘页面,其中包含该密钥的卫星信息。伪代码 在本章中隐含地假设与一个卫星信息相关的 密钥或指向此类卫星信息的指针,只要 键从一个节点移动到另一个节点。"

所以我一直在尝试用谷歌搜索卫星信息一词的含义,但我找不到任何信息(包括关于 NASA 的信息)。我仅基于文本的理解是,“卫星信息”是指向实际键值位置的地址,例如指针?我是对的还是我误解了?

编辑:它与钥匙有何不同?

【问题讨论】:

  • 您最后一个问题的答案肯定是“是”。
  • @KerrekSB “我误会了吗?”那个..

标签: algorithm pointers data-structures b-tree


【解决方案1】:

卫星数据是指您想要存储在数据结构中的任何“有效负载”数据,并且它不是数据结构的结构的一部分。它可以是你想要的任何东西。它可以是单个值、大量值的集合,也可以是指向保存该值的其他位置的指针。

例如,这是一个单链表的列表节点,其卫星数据是一个整数:

struct node
{
    node * next;
    int satellite;
};

换句话说,任何给定数据结构的全部价值在于它所包含的数据,在您的书籍术语中,这就是卫星数据。数据结构将额外消耗结构数据(如示例中的 next 指针)来执行定义它的算法,但从用户的角度来看,这些基本上是“开销”。

对于关联容器,“键”值具有双重作用:一方面它是用户数据,但另一方面它也是容器结构的一部分。但是,一棵树可以配备额外的卫星数据,在这种情况下,它会成为从关键数据到卫星数据的“地图”。

在一个极端,您有一个固定大小的数组,它没有开销并且只有有效负载数据,而在另一个极端,您有一个复杂的结构,例如多索引、尝试、Judy 数组或无锁容器维护相对大量的结构数据。

【讨论】:

  • 但它与“钥匙”有何不同?
  • @vincentbelkin:树的操作需要密钥。其他一切都不是。让我编辑一下。
  • @vincentbelkin:trie 中的情况更加令人困惑:trie 的“值”实际上是由许多“键”组成的......但关键是卫星数据是从不参与结构算法。
  • 哦!像 BST 树一样使用它们的键值来确定在哪里插入新节点对吗?
  • @vincentbelkin:是的,没错。 关联数据结构的关键在于它将键合并到数据的结构排列中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多