Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrVertexNotFound represents vertex not found. ErrVertexNotFound = errors.New("vertex not found") // ErrVertexAlreadyExists represents vertex already exists. ErrVertexAlreadyExists = errors.New("vertex already exists") // ErrParnetAlreadyExists represents parent of vertex already exists. ErrParnetAlreadyExists = errors.New("parent of vertex already exists") // ErrChildAlreadyExists represents child of vertex already exists. ErrChildAlreadyExists = errors.New("child of vertex already exists") // ErrCycleBetweenVertices represents cycle between vertices. ErrCycleBetweenVertices = errors.New("cycle between vertices") )
Functions ¶
This section is empty.
Types ¶
type DAG ¶
type DAG interface { // AddVertex adds vertex to graph. AddVertex(id string, value any) error // DeleteVertex deletes vertex graph. DeleteVertex(id string) // GetVertex gets vertex from graph. GetVertex(id string) (*Vertex, error) // LenVertex returns length of vertices. LenVertex() int // RangeVertex calls f sequentially for each key and value present in the vertices. // If f returns false, range stops the iteration. RangeVertex(fn func(key string, value *Vertex) bool) // AddEdge adds edge between two vertices. AddEdge(fromVertexID, toVertexID string) error // DeleteEdge deletes edge between two vertices. DeleteEdge(fromVertexID, toVertexID string) error }
DAG is the interface used for directed acyclic graph.
Click to show internal directories.
Click to hide internal directories.