Fantasy
搜索结果

    显示/隐藏目录

    SkipTableBase<TValue> 类

    抽象的跳表基类,提供跳表的基本功能和操作。

    继承
    object
    SkipTableBase<TValue>
    SkipTableDesc<TValue>
    SkipTable<TValue>
    实现
    IEnumerable<SkipTableNode<TValue>>
    IEnumerable
    继承成员
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    命名空间: Fantasy.DataStructure.SkipTable
    程序集: Fantasy.Net.dll
    语法
    public abstract class SkipTableBase<TValue> : IEnumerable<SkipTableNode<TValue>>, IEnumerable
    类型参数
    名称 描述
    TValue

    跳表中存储的值的类型。

    构造函数

    | 编辑本文 查看源代码

    SkipTableBase(int)

    初始化一个新的跳表实例。

    声明
    protected SkipTableBase(int maxLayer = 8)
    参数
    类型 名称 描述
    int maxLayer

    跳表的最大层数,默认为 8。

    字段

    | 编辑本文 查看源代码

    AntiFindStack

    用于辅助反向查找的栈

    声明
    protected readonly Stack<SkipTableNode<TValue>> AntiFindStack
    字段值
    类型 描述
    Stack<SkipTableNode<TValue>>
    | 编辑本文 查看源代码

    BottomHeader

    跳表的底部头节点

    声明
    public SkipTableNode<TValue> BottomHeader
    字段值
    类型 描述
    SkipTableNode<TValue>
    | 编辑本文 查看源代码

    MaxLayer

    跳表的最大层数

    声明
    public readonly int MaxLayer
    字段值
    类型 描述
    int
    | 编辑本文 查看源代码

    Node

    存储跳表节点的字典

    声明
    protected readonly Dictionary<long, SkipTableNode<TValue>> Node
    字段值
    类型 描述
    Dictionary<long, SkipTableNode<TValue>>
    | 编辑本文 查看源代码

    Random

    用于生成随机数的随机数生成器

    声明
    protected readonly Random Random
    字段值
    类型 描述
    Random
    | 编辑本文 查看源代码

    TopHeader

    跳表的顶部头节点

    声明
    public readonly SkipTableNode<TValue> TopHeader
    字段值
    类型 描述
    SkipTableNode<TValue>

    属性

    | 编辑本文 查看源代码

    Count

    跳表中节点的数量,使用了 Node 字典的计数

    声明
    public int Count { get; }
    属性值
    类型 描述
    int
    | 编辑本文 查看源代码

    this[long]

    获取指定键的节点的值,若不存在则返回默认值。

    声明
    public TValue this[long key] { get; }
    参数
    类型 名称 描述
    long key

    要查找的键。

    属性值
    类型 描述
    TValue

    方法

    | 编辑本文 查看源代码

    Add(long, long, long, TValue)

    向跳表中添加节点。

    声明
    public abstract void Add(long sortKey, long viceKey, long key, TValue value)
    参数
    类型 名称 描述
    long sortKey

    节点的排序键。

    long viceKey

    节点的副键。

    long key

    节点的键。

    TValue value

    节点的值。

    | 编辑本文 查看源代码

    AntiFind(int, int, ListPool<SkipTableNode<TValue>>)

    在跳表中进行反向查找节点,返回从结束位置到起始位置的节点列表。

    声明
    public void AntiFind(int start, int end, ListPool<SkipTableNode<TValue>> list)
    参数
    类型 名称 描述
    int start

    结束位置的排名。

    int end

    起始位置的排名。

    ListPool<SkipTableNode<TValue>> list

    用于存储节点列表的 ListPool<T> 实例。

    | 编辑本文 查看源代码

    Find(int, int, ListPool<SkipTableNode<TValue>>)

    在跳表中查找节点,返回从起始位置到结束位置的节点列表。

    声明
    public void Find(int start, int end, ListPool<SkipTableNode<TValue>> list)
    参数
    类型 名称 描述
    int start

    起始位置的排名。

    int end

    结束位置的排名。

    ListPool<SkipTableNode<TValue>> list

    用于存储节点列表的 ListPool<T> 实例。

    | 编辑本文 查看源代码

    GetAntiRanking(long)

    获取指定键的反向排名,即在比该键更大的节点中的排名。

    声明
    public int GetAntiRanking(long key)
    参数
    类型 名称 描述
    long key

    要查找的键。

    返回
    类型 描述
    int

    反向排名。

    | 编辑本文 查看源代码

    GetEnumerator()

    返回一个枚举器,用于遍历跳表中的节点。

    声明
    public IEnumerator<SkipTableNode<TValue>> GetEnumerator()
    返回
    类型 描述
    IEnumerator<SkipTableNode<TValue>>

    一个可用于遍历跳表节点的枚举器。

    | 编辑本文 查看源代码

    GetLastValue()

    获取跳表中最后一个节点的值。

    声明
    public TValue GetLastValue()
    返回
    类型 描述
    TValue

    最后一个节点的值。

    | 编辑本文 查看源代码

    GetRanking(long)

    获取指定键的节点在跳表中的排名。

    声明
    public int GetRanking(long key)
    参数
    类型 名称 描述
    long key

    要查找的键。

    返回
    类型 描述
    int

    节点的排名。

    | 编辑本文 查看源代码

    Remove(long)

    移除跳表中指定键的节点。

    声明
    public bool Remove(long key)
    参数
    类型 名称 描述
    long key

    要移除的节点的键。

    返回
    类型 描述
    bool

    移除是否成功。

    | 编辑本文 查看源代码

    Remove(long, long, long, out TValue)

    从跳表中移除指定键的节点。

    声明
    public abstract bool Remove(long sortKey, long viceKey, long key, out TValue value)
    参数
    类型 名称 描述
    long sortKey

    节点的排序键。

    long viceKey

    节点的副键。

    long key

    节点的键。

    TValue value

    被移除的节点的值。

    返回
    类型 描述
    bool

    移除是否成功。

    | 编辑本文 查看源代码

    TryGetNodeByKey(long, out SkipTableNode<TValue>)

    尝试通过键获取节点。

    声明
    public bool TryGetNodeByKey(long key, out SkipTableNode<TValue> node)
    参数
    类型 名称 描述
    long key

    要查找的键。

    SkipTableNode<TValue> node

    获取到的节点,如果键不存在则为 null。

    返回
    类型 描述
    bool

    是否成功获取节点。

    | 编辑本文 查看源代码

    TryGetValueByKey(long, out TValue)

    尝试通过键获取节点的值。

    声明
    public bool TryGetValueByKey(long key, out TValue value)
    参数
    类型 名称 描述
    long key

    要查找的键。

    TValue value

    获取到的节点的值,如果键不存在则为默认值。

    返回
    类型 描述
    bool

    是否成功获取节点的值。

    实现

    IEnumerable<T>
    IEnumerable

    扩展方法

    JsonHelper.ToJson<T>(T)
    • 编辑本文
    • 查看源代码
    本文内容
    Back to top Generated by DocFX