Class LinksAvlBalancedTreeMethodsBase<TLinkAddress>
Represents the links avl balanced tree methods base.
public abstract class LinksAvlBalancedTreeMethodsBase<TLinkAddress> : SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>, ILinksTreeMethods<TLinkAddress> where TLinkAddress : IUnsignedNumber<TLinkAddress>, IShiftOperators<TLinkAddress, int, TLinkAddress>, IBitwiseOperators<TLinkAddress, TLinkAddress, TLinkAddress>, IMinMaxValue<TLinkAddress>, IComparisonOperators<TLinkAddress, TLinkAddress, bool>
Type Parameters
TLinkAddress
- Inheritance
-
SizedBinaryTreeMethodsBase<TLinkAddress>SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>LinksAvlBalancedTreeMethodsBase<TLinkAddress>
- Implements
-
ILinksTreeMethods<TLinkAddress>
- Derived
- Inherited Members
-
SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetRightest(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetLeftest(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.Contains(TLinkAddress, TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.IncrementBalance(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.DecrementBalance(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetLeftOrDefault(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetRightOrDefault(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetLeftIsChild(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetRightIsChild(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetBalance(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.AttachCore(ref TLinkAddress, TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.LeftRotateWithBalance(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.RightRotateWithBalance(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetNext(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.GetPrevious(TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.DetachCore(ref TLinkAddress, TLinkAddress)SizedAndThreadedAVLBalancedTreeMethods<TLinkAddress>.ClearNode(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>.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>.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
LinksAvlBalancedTreeMethodsBase(LinksConstants<TLinkAddress>, byte*, byte*)
Initializes a new LinksAvlBalancedTreeMethodsBase<TLinkAddress> instance.
protected LinksAvlBalancedTreeMethodsBase(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 link.
public TLinkAddress EachUsage(TLinkAddress link, ReadHandler<TLinkAddress>? handler)
Parameters
linkTLinkAddressThe link.
handlerReadHandler<TLinkAddress>The handler.
Returns
- TLinkAddress
The continue.
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
GetBalanceValue(TLinkAddress)
Gets the balance value using the specified stored value.
protected virtual sbyte GetBalanceValue(TLinkAddress storedValue)
Parameters
storedValueTLinkAddressThe stored value.
Returns
- sbyte
The sbyte
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
GetLeftIsChildValue(TLinkAddress)
Determines whether this instance get left is child value.
protected virtual bool GetLeftIsChildValue(TLinkAddress value)
Parameters
valueTLinkAddressThe value.
Returns
- bool
The bool
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
GetRightIsChildValue(TLinkAddress)
Determines whether this instance get right is child value.
protected virtual bool GetRightIsChildValue(TLinkAddress value)
Parameters
valueTLinkAddressThe value.
Returns
- bool
The bool
GetSizeValue(TLinkAddress)
Gets the size value using the specified value.
protected virtual TLinkAddress GetSizeValue(TLinkAddress value)
Parameters
valueTLinkAddressThe value.
Returns
- TLinkAddress
The link
GetTreeRoot()
Gets the tree root.
protected abstract TLinkAddress GetTreeRoot()
Returns
- TLinkAddress
The link
IsChild(TLinkAddress, TLinkAddress)
Determines whether this instance is child.
protected bool IsChild(TLinkAddress parent, TLinkAddress possibleChild)
Parameters
parentTLinkAddressThe parent.
possibleChildTLinkAddressThe possible child.
Returns
- bool
The bool
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
Индекс искомой связи.
SetBalanceValue(ref TLinkAddress, sbyte)
Sets the balance value using the specified stored value.
protected virtual void SetBalanceValue(ref TLinkAddress storedValue, sbyte value)
Parameters
storedValueTLinkAddressThe stored value.
valuesbyteThe value.
SetLeftIsChildValue(ref TLinkAddress, bool)
Sets the left is child value using the specified stored value.
protected virtual void SetLeftIsChildValue(ref TLinkAddress storedValue, bool value)
Parameters
storedValueTLinkAddressThe stored value.
valueboolThe value.
SetRightIsChildValue(ref TLinkAddress, bool)
Sets the right is child value using the specified stored value.
protected virtual void SetRightIsChildValue(ref TLinkAddress storedValue, bool value)
Parameters
storedValueTLinkAddressThe stored value.
valueboolThe value.
SetSizeValue(ref TLinkAddress, TLinkAddress)
Sets the size value using the specified stored value.
protected virtual void SetSizeValue(ref TLinkAddress storedValue, TLinkAddress size)
Parameters
storedValueTLinkAddressThe stored value.
sizeTLinkAddressThe size.