다음을 통해 공유


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. RtlInsertAsLeftChild 또는 RtlInsertAsRightChild 사용하여 새 노드를 플레이 트리에 삽입합니다.
  4. 새 노드의 주소로 RtlSplay 호출합니다. (새 노드는 플레이 트리의 루트가 됩니다.)
RtlXxx 플레이 트리 루틴의 호출자는 splay 트리에 대한 액세스를 동기화합니다. 플레이 트리에 대한 액세스를 동기화하는 방법에 대한 자세한 내용은 잠금, 교착 상태 및 동기화 및 하드웨어 우선 순위 관리 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 지원되는 모든 Windows 버전에서 사용할 수 있습니다.
헤더 ntddk.h(Fltkernel.h, Ntifs.h, Ntddk.h 포함)

참고 항목

rtlInitializeSplayLinks

RtlInsertAsLeftChild

RtlInsertAsRightChild

RtlLeftChild

rtlRightChild

rtlSplay