什么是数据结构中的卫星信息?

时间:2013-01-27 20:25:48

标签: algorithm pointers data-structures b-tree

摘自Thomas Cormen的算法导论:

为了简单起见,我们假设,就像二元搜索树和红黑一样 树,与密钥相关联的任何“卫星信息”都存储在同一个树中 节点作为关键。在实践中,实际上可能存储每个键只是一个指针 另一个包含该密钥的卫星信息的磁盘页面。伪代码 在本章中隐含地假设与a相关的卫星信息 无论何时,密钥或指向这种卫星信息的指针都会随着密钥传输 key从节点移动到节点。

所以我一直在尝试谷歌卫星信息这个术语的含义,但我找不到任何东西(有关NASA的内容)。我基于文本的理解是“卫星信息”是指向实际键值位置的地址,如指针?我纠正了还是误解了?

编辑:是什么让它与钥匙不同?

1 个答案:

答案 0 :(得分:20)

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

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

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

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

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

在一个极端,你有一个固定大小的数组,它具有 no 开销和只有有效载荷数据,而在另一个极端,你有复杂的结构,如多索引,尝试,Judy数组或无锁容器保持相对大量的结构数据。