Class LinksSizeBalancedTreeMethodsBase<TLinkAddress>

Namespace
Platform.Data.Doublets.Memory.United.Generic
Assembly
Platform.Data.Doublets.dll

Represents the links size balanced tree methods base.

public abstract class LinksSizeBalancedTreeMethodsBase<TLinkAddress> : SizeBalancedTreeMethods<TLinkAddress>, ILinksTreeMethods<TLinkAddress> where TLinkAddress : IUnsignedNumber<TLinkAddress>, IComparisonOperators<TLinkAddress, TLinkAddress, bool>

Type Parameters

TLinkAddress
Inheritance
SizedBinaryTreeMethodsBase<TLinkAddress>
SizeBalancedTreeMethods<TLinkAddress>
LinksSizeBalancedTreeMethodsBase<TLinkAddress>
Implements
ILinksTreeMethods<TLinkAddress>
Derived
Inherited Members
SizeBalancedTreeMethods<TLinkAddress>.attachCount
SizeBalancedTreeMethods<TLinkAddress>.BeforeAttach()
SizeBalancedTreeMethods<TLinkAddress>.AttachCore(ref TLinkAddress, TLinkAddress)
SizeBalancedTreeMethods<TLinkAddress>.AfterAttach()
SizeBalancedTreeMethods<TLinkAddress>.DetachCore(ref TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetLeftReference(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetRightReference(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetLeft(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetRight(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.SetLeft(TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.SetRight(TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.SetSize(TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetLeftOrDefault(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetRightOrDefault(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.IncrementSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.DecrementSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetLeftSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetRightSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetSizeOrZero(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.FixSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.LeftRotate(ref TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.LeftRotate(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.RightRotate(ref TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.RightRotate(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetRightest(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetLeftest(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetNext(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.GetPrevious(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.Contains(TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.ClearNode(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.Attach(ref TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.Detach(ref TLinkAddress, TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.FixSizes(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.ValidateSizes(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.ValidateSize(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.PrintNodes(TLinkAddress)
SizedBinaryTreeMethodsBase<TLinkAddress>.PrintNode(TLinkAddress)

Constructors

LinksSizeBalancedTreeMethodsBase(LinksConstants<TLinkAddress>, byte*, byte*)

protected LinksSizeBalancedTreeMethodsBase(LinksConstants<TLinkAddress> constants, byte* links, byte* header)

Parameters

constants LinksConstants<TLinkAddress>

A constants.

links byte*

A links.

header byte*

A header.

Fields

Break

The break.

protected readonly TLinkAddress Break

Field Value

TLinkAddress

Continue

The continue.

protected readonly TLinkAddress Continue

Field Value

TLinkAddress

Header

The header.

protected readonly byte* Header

Field Value

byte*

The links.

protected readonly byte* Links

Field Value

byte*

Properties

this[TLinkAddress]

The zero.

public TLinkAddress this[TLinkAddress index] { get; }

Parameters

index TLinkAddress

Property Value

TLinkAddress

Methods

CountUsages(TLinkAddress)

Counts the usages using the specified link.

public TLinkAddress CountUsages(TLinkAddress link)

Parameters

link TLinkAddress

The link.

Returns

TLinkAddress

The link

EachUsage(TLinkAddress, ReadHandler<TLinkAddress>?)

Eaches the usage using the specified base.

public TLinkAddress EachUsage(TLinkAddress @base, ReadHandler<TLinkAddress>? handler)

Parameters

base TLinkAddress

The base.

handler ReadHandler<TLinkAddress>

The handler.

Returns

TLinkAddress

The link

FirstIsToTheLeftOfSecond(TLinkAddress, TLinkAddress)

Determines whether this instance first is to the left of second.

protected override bool FirstIsToTheLeftOfSecond(TLinkAddress first, TLinkAddress second)

Parameters

first TLinkAddress

The first.

second TLinkAddress

The second.

Returns

bool

The bool

FirstIsToTheLeftOfSecond(TLinkAddress, TLinkAddress, TLinkAddress, TLinkAddress)

Determines whether this instance first is to the left of second.

protected abstract bool FirstIsToTheLeftOfSecond(TLinkAddress source, TLinkAddress target, TLinkAddress rootSource, TLinkAddress rootTarget)

Parameters

source TLinkAddress

The source.

target TLinkAddress

The target.

rootSource TLinkAddress

The root source.

rootTarget TLinkAddress

The root target.

Returns

bool

The bool

FirstIsToTheRightOfSecond(TLinkAddress, TLinkAddress)

Determines whether this instance first is to the right of second.

protected override bool FirstIsToTheRightOfSecond(TLinkAddress first, TLinkAddress second)

Parameters

first TLinkAddress

The first.

second TLinkAddress

The second.

Returns

bool

The bool

FirstIsToTheRightOfSecond(TLinkAddress, TLinkAddress, TLinkAddress, TLinkAddress)

Determines whether this instance first is to the right of second.

protected abstract bool FirstIsToTheRightOfSecond(TLinkAddress source, TLinkAddress target, TLinkAddress rootSource, TLinkAddress rootTarget)

Parameters

source TLinkAddress

The source.

target TLinkAddress

The target.

rootSource TLinkAddress

The root source.

rootTarget TLinkAddress

The root target.

Returns

bool

The bool

GetBasePartValue(TLinkAddress)

Gets the base part value using the specified link.

protected abstract TLinkAddress GetBasePartValue(TLinkAddress link)

Parameters

link TLinkAddress

The link.

Returns

TLinkAddress

The link

GetHeaderReference()

Gets the header reference.

protected virtual ref LinksHeader<TLinkAddress> GetHeaderReference()

Returns

LinksHeader<TLinkAddress>

A ref links header of t link

GetLinkReference(TLinkAddress)

Gets the link reference using the specified link.

protected virtual ref RawLink<TLinkAddress> GetLinkReference(TLinkAddress link)

Parameters

link TLinkAddress

The link.

Returns

RawLink<TLinkAddress>

A ref raw link of t link

GetLinkValues(TLinkAddress)

Gets the link values using the specified link index.

protected virtual IList<TLinkAddress>? GetLinkValues(TLinkAddress linkIndex)

Parameters

linkIndex TLinkAddress

The link index.

Returns

IList<TLinkAddress>

A list of t link

GetTreeRoot()

Gets the tree root.

protected abstract TLinkAddress GetTreeRoot()

Returns

TLinkAddress

The link

PrintNodeValue(TLinkAddress, StringBuilder)

Prints the node value using the specified node.

protected override void PrintNodeValue(TLinkAddress node, StringBuilder sb)

Parameters

node TLinkAddress

The node.

sb StringBuilder

The sb.

Search(TLinkAddress, TLinkAddress)

Выполняет поиск и возвращает индекс связи с указанными Source (началом) и Target (концом).

public TLinkAddress Search(TLinkAddress source, TLinkAddress target)

Parameters

source TLinkAddress

Индекс связи, которая является началом на искомой связи.

target TLinkAddress

Индекс связи, которая является концом на искомой связи.

Returns

TLinkAddress

Индекс искомой связи.

See Also

SizeBalancedTreeMethods<TElement>
ILinksTreeMethods<TLinkAddress>