Documentation ¶
Overview ¶
Package dp (DistributionPattern) 提供用于在二维数组中根据不同的特征标记为数组成员建立分布链接的函数和数据结构。该包的目标是实现快速查找与给定位置成员具有相同特征且位置紧邻的其他成员。 主要特性:
- 分布链接机制:dp 包提供了一种分布链接的机制,可以根据成员的特征将它们链接在一起。这样,可以快速查找与给定成员具有相同特征且位置紧邻的其他成员。
- 二维数组支持:该包支持在二维数组中建立分布链接。可以将二维数组中的成员视为节点,并根据其特征进行链接。
- 快速查找功能:使用 dp 包提供的函数,可以快速查找与给定位置成员具有相同特征且位置紧邻的其他成员。这有助于在二维数组中进行相关性分析或查找相邻成员。
Index ¶
- type DistributionPattern
- func (slf *DistributionPattern[Item]) GetLinks(pos int) (result []Link[Item])
- func (slf *DistributionPattern[Item]) HasLink(pos int) bool
- func (slf *DistributionPattern[Item]) LoadMatrix(matrix [][]Item)
- func (slf *DistributionPattern[Item]) LoadMatrixWithPos(width int, matrix []Item)
- func (slf *DistributionPattern[Item]) Refresh(pos int)
- func (slf *DistributionPattern[Item]) RefreshWithItem(pos int, item Item)
- type Link
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DistributionPattern ¶
type DistributionPattern[Item any] struct { // contains filtered or unexported fields }
DistributionPattern 分布图
func NewDistributionPattern ¶
func NewDistributionPattern[Item any](sameKindVerifyHandle func(itemA, itemB Item) bool) *DistributionPattern[Item]
NewDistributionPattern 构建一个分布图实例
func (*DistributionPattern[Item]) GetLinks ¶
func (slf *DistributionPattern[Item]) GetLinks(pos int) (result []Link[Item])
GetLinks 获取关联的成员
- 其中包含传入的 pos 成员
func (*DistributionPattern[Item]) HasLink ¶
func (slf *DistributionPattern[Item]) HasLink(pos int) bool
HasLink 检查一个位置是否包含除它本身外的其他关联成员
func (*DistributionPattern[Item]) LoadMatrix ¶
func (slf *DistributionPattern[Item]) LoadMatrix(matrix [][]Item)
LoadMatrix 通过二维矩阵加载分布图
- 通过该函数加载的分布图使用的矩阵是复制后的矩阵,因此无法直接通过刷新(Refresh)来更新分布关系
- 需要通过直接刷新的方式请使用 LoadMatrixWithPos
func (*DistributionPattern[Item]) LoadMatrixWithPos ¶
func (slf *DistributionPattern[Item]) LoadMatrixWithPos(width int, matrix []Item)
LoadMatrixWithPos 通过二维矩阵加载分布图
func (*DistributionPattern[Item]) Refresh ¶
func (slf *DistributionPattern[Item]) Refresh(pos int)
Refresh 刷新特定位置的分布关系
- 由于 LoadMatrix 的矩阵是复制后的矩阵,所以任何外部的改动都不会影响到分布图的变化,在这种情况下,刷新将没有任何意义
- 需要通过直接刷新的方式请使用 LoadMatrixWithPos 加载矩阵,或者通过 RefreshWithItem 函数进行刷新
func (*DistributionPattern[Item]) RefreshWithItem ¶
func (slf *DistributionPattern[Item]) RefreshWithItem(pos int, item Item)
RefreshWithItem 通过特定的成员刷新特定位置的分布关系
- 如果矩阵通过 LoadMatrixWithPos 加载,将会重定向至 Refresh
Click to show internal directories.
Click to hide internal directories.