Class LinksRecursionlessSizeBalancedTreeMethodsBase<TLinkAddress>
Represents the links recursionless size balanced tree methods base.
public abstract class LinksRecursionlessSizeBalancedTreeMethodsBase<TLinkAddress> : RecursionlessSizeBalancedTreeMethods<TLinkAddress>, ILinksTreeMethods<TLinkAddress> where TLinkAddress : IUnsignedNumber<TLinkAddress>, IComparisonOperators<TLinkAddress, TLinkAddress, bool>
Type Parameters
TLinkAddress
- Inheritance
-
SizedBinaryTreeMethodsBase<TLinkAddress>RecursionlessSizeBalancedTreeMethods<TLinkAddress>LinksRecursionlessSizeBalancedTreeMethodsBase<TLinkAddress>
- Implements
-
ILinksTreeMethods<TLinkAddress>
- Derived
- Inherited Members
-
RecursionlessSizeBalancedTreeMethods<TLinkAddress>.AttachCore(ref TLinkAddress, TLinkAddress)RecursionlessSizeBalancedTreeMethods<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>.BeforeAttach()SizedBinaryTreeMethodsBase<TLinkAddress>.AfterAttach()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
LinksRecursionlessSizeBalancedTreeMethodsBase(LinksConstants<TLinkAddress>, byte*, byte*)
Initializes a new LinksRecursionlessSizeBalancedTreeMethodsBase<TLinkAddress> instance.
protected LinksRecursionlessSizeBalancedTreeMethodsBase(LinksConstants<TLinkAddress> constants, byte* links, byte* header)
Parameters
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*
Links
The links.
protected readonly byte* Links
Field Value
- byte*
Properties
this[TLinkAddress]
The zero.
public TLinkAddress this[TLinkAddress index] { get; }
Parameters
indexTLinkAddress
Property Value
- TLinkAddress
Methods
CountUsages(TLinkAddress)
Counts the usages using the specified link.
public TLinkAddress CountUsages(TLinkAddress link)
Parameters
linkTLinkAddressThe 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
baseTLinkAddressThe base.
handlerReadHandler<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
firstTLinkAddressThe first.
secondTLinkAddressThe 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
sourceTLinkAddressThe source.
targetTLinkAddressThe target.
rootSourceTLinkAddressThe root source.
rootTargetTLinkAddressThe 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
firstTLinkAddressThe first.
secondTLinkAddressThe 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
sourceTLinkAddressThe source.
targetTLinkAddressThe target.
rootSourceTLinkAddressThe root source.
rootTargetTLinkAddressThe root target.
Returns
- bool
The bool
GetBasePartValue(TLinkAddress)
Gets the base part value using the specified link.
protected abstract TLinkAddress GetBasePartValue(TLinkAddress link)
Parameters
linkTLinkAddressThe 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
linkTLinkAddressThe 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
linkIndexTLinkAddressThe 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
nodeTLinkAddressThe node.
sbStringBuilderThe sb.
Search(TLinkAddress, TLinkAddress)
Выполняет поиск и возвращает индекс связи с указанными Source (началом) и Target (концом).
public TLinkAddress Search(TLinkAddress source, TLinkAddress target)
Parameters
sourceTLinkAddressИндекс связи, которая является началом на искомой связи.
targetTLinkAddressИндекс связи, которая является концом на искомой связи.
Returns
- TLinkAddress
Индекс искомой связи.