dp

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2023 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package dp (DistributionPattern) 提供用于在二维数组中根据不同的特征标记为数组成员建立分布链接的函数和数据结构。该包的目标是实现快速查找与给定位置成员具有相同特征且位置紧邻的其他成员。 主要特性:

  • 分布链接机制:dp 包提供了一种分布链接的机制,可以根据成员的特征将它们链接在一起。这样,可以快速查找与给定成员具有相同特征且位置紧邻的其他成员。
  • 二维数组支持:该包支持在二维数组中建立分布链接。可以将二维数组中的成员视为节点,并根据其特征进行链接。
  • 快速查找功能:使用 dp 包提供的函数,可以快速查找与给定位置成员具有相同特征且位置紧邻的其他成员。这有助于在二维数组中进行相关性分析或查找相邻成员。

Index

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 (slf *DistributionPattern[Item]) GetLinks(pos int) (result []Link[Item])

GetLinks 获取关联的成员

  • 其中包含传入的 pos 成员
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
type Link[V any] struct {
	Pos  int
	Item V
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL