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