#iterator #algorithm #graph-traversal #tree-traversal #line-segment

shiftnanigans

该库包含用于迭代或迭代前后移动的不同迭代数据结构

1 个不稳定版本

0.3.3 2023年6月7日
0.3.2 2023年4月30日
0.3.1 2023年3月29日
0.3.0 2023年3月29日

1539数据结构

Download history 122/week @ 2024-04-01 83/week @ 2024-04-08 95/week @ 2024-04-15 126/week @ 2024-04-22 47/week @ 2024-04-29 34/week @ 2024-05-06 120/week @ 2024-05-13 68/week @ 2024-05-20 65/week @ 2024-05-27 64/week @ 2024-06-03 30/week @ 2024-06-10 42/week @ 2024-06-17 40/week @ 2024-06-24 44/week @ 2024-07-01 64/week @ 2024-07-08 30/week @ 2024-07-15

每月 下载量 184

MIT/Apache

645KB
11K SLoC

Shiftnanigans

此包包含通过“移动”顺序前后迭代的有用、通用、常用功能、数据结构和算法。这些“移动器”允许以允许更容易检测快速失败场景的方式遍历树形数据结构,而不是检查项目集合。

功能

移动器

  • SegmentPermutationShifter
    • 将未定位的线段转换为局部化线段
  • IndexShifter
    • 遍历项的树形结构,对这些项进行索引
  • ScalingSquareBreadthFirstSearchShifter
    • 逐步遍历整数内部树的所有可能深度,仅在遍历所有更接近根的子项的排列后,才允许到达更深的孩子
  • ShiftingSquareBreadthFirstSearchShifter
    • 类似于ScalingSquareBreadthFirstSearchShifter,但现在整数是相应索引的项
  • HyperGraphClicheShifter
    • 返回提供的超图中存在的完全连接的陈词滥调图,但每个状态节点在遍历移动器时都单独提供

增量器

  • BinaryDensityIncrementer
    • 返回一个布尔值集合,每个后续迭代都逐步增加1的总数,从零真值开始,到所有真值
  • BinaryValueIncrementer
    • 返回从零到提供的最大二进制幂的所有整数的二进制表示,基于提供的长度
  • LimitedIncrementer
    • 另一个增量器的包装器,只允许构造函数提供的特定次数的迭代
  • RoundRobinIncrementer
    • 其他增量器的包装器,遍历内部每个增量器,给每个增量器一个返回项目序列的机会
  • ShifterIncrementer
    • 移动器的包装器,以深度优先搜索模式迭代遍历
  • ShiftingCellGroupDependencyIncrementer
    • 一个相当复杂的增量器,比较单元格(像素)组彼此之间,不允许重叠(特定和一般),并确保非墙壁单元格组与墙壁单元格组之间的相邻性

PixelBoard

  • PixelBoardRandomizer
    • 当提供PixelBoard时,它会随机确定像素(单元格组)的位置,同时避免重叠并保持检测到的单元格组之间的相邻性。

用法

即将推出

示例

无(目前)

依赖项

~1.5MB
~34K SLoC