RTL_SPLAY_LINKS结构(ntddk.h)

RTL_SPLAY_LINKS结构是不透明的结构,由系统用来表示 splay 链接树节点。

语法

typedef struct _RTL_SPLAY_LINKS {
  struct _RTL_SPLAY_LINKS *Parent;
  struct _RTL_SPLAY_LINKS *LeftChild;
  struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS;

成员

Parent

指向此节点的父节点的不透明指针。 如果 splay 链接树中只有一个节点存在,则此成员的值 NULL

LeftChild

指向此节点的左子节点的不透明指针。 如果不存在左子节点,则此成员的值 NULL

RightChild

指向此节点的右子节点的不透明指针。 如果不存在右子节点,则此成员的值 NULL

言论

通常,splay 链接树的每个节点都包含用户定义的结构。 每个此类用户定义节点必须包含初始化RTL_SPLAY_LINKS结构。 若要初始化RTL_SPLAY_LINKS结构,请调用 RtlInitializeSplayLinks 宏。 (传递用户定义结构中包含的RTL_SPLAY_LINKS成员的地址。

对于包含一个或多个节点的 splay 链接树,新节点通常初始化如下:

  1. 使用 RtlLeftChild 和/或 RtlRightChild 查找新节点的插入点。 也就是说,获取新节点的父节点的正确地址。 (新节点将附加到父节点左侧或右侧。
  2. 使用 RtlInitializeSplayLinks 使用上一步中找到的父节点的地址初始化新节点。
  3. 使用 RtlInsertAsLeftChildRtlInsertAsRightChild,将新节点插入 splay 树中。
  4. 使用新节点的地址调用 RtlSplay。 (新节点将成为 splay 树的根。
RtlXxx splay 树例程的调用方负责同步对 splay 树的访问。 有关如何同步对 splay 树的访问的详细信息,请参阅 锁、死锁和同步 以及 管理硬件优先级

要求

要求 价值
最低支持的客户端 在所有受支持的 Windows 版本中可用。
标头 ntddk.h (包括 Fltkernel.h、Ntifs.h、Ntddk.h)

另请参阅

RtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlLeftChild

RtlRightChild

RtlSplay