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 宏。 (传递包含在用户定义的 structure 中的RTL_SPLAY_LINKS成员的地址。)
对于具有一个或多个节点的 splay 链接树,通常按如下所示初始化新节点:
- 使用 RtlLeftChild 和/或 RtlRightChild 查找新节点的插入点。 也就是说,获取新节点的父节点的正确地址。 (新节点将附加到父节点的左侧或右侧。)
- 使用 RtlInitializeSplayLinks 使用在上一步中找到的父节点的地址初始化新节点。
- 根据需要使用 RtlInsertAsLeftChild 或 RtlInsertAsRightChild 将新节点插入 splay 树。
- 使用新节点的地址调用 RtlSplay 。 (新节点将成为 splay 树的根。)
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在所有受支持的 Windows 版本中可用。 |
标头 | ntddk.h (包括 Fltkernel.h、Ntifs.h、Ntddk.h) |