package bipartitegraph
import "github.com/onsi/gomega/matchers/support/goraph/bipartitegraph"
Index ¶
Types ¶
type BipartiteGraph ¶
type BipartiteGraph struct { Left NodeOrderedSet Right NodeOrderedSet Edges EdgeSet }
func NewBipartiteGraph ¶
func NewBipartiteGraph(leftValues, rightValues []any, neighbours func(any, any) (bool, error)) (*BipartiteGraph, error)
func (*BipartiteGraph) FreeLeftRight ¶
func (bg *BipartiteGraph) FreeLeftRight(edges EdgeSet) (leftValues, rightValues []any)
FreeLeftRight returns left node values and right node values of the BipartiteGraph's nodes which are not part of the given edges.
func (*BipartiteGraph) LargestMatching ¶
func (bg *BipartiteGraph) LargestMatching() (matching EdgeSet)
LargestMatching implements the Hopcroft–Karp algorithm taking as input a bipartite graph and outputting a maximum cardinality matching, i.e. a set of as many edges as possible with the property that no two edges share an endpoint.
Source Files ¶
bipartitegraph.go bipartitegraphmatching.go
- Version
- v1.37.0 (latest)
- Published
- Apr 2, 2025
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 3 minutes ago –
Tools for package owners.