interface EdgeGraphHashed.Builder<N>
A mutable EdgeGraphHashed
builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeGraphHashed.Builder API documentation
Extends: EdgeGraphBase.Builder<N,Tp>
Type parameters
Name | Description |
---|---|
N | the node type |
Properties
connectionSize
Returns the amount of connections in the graph.
connectionSize
context
Returns the context
associated to this collection instance.
context
context
associated to this collection instance.isEmpty
Returns true if there are no entries in the builder.
isEmpty
nodeSize
Returns the amount of nodes in the graph.
nodeSize
Methods
addGraphElement
Adds the given element
graph element to the builder, where a graph element is either a one-element tuple containing a node, or a two-element tuple containing two nodes indicating a connection.
addGraphElement
element
graph element to the builder, where a graph element is either a one-element tuple containing a node, or a two-element tuple containing two nodes indicating a connection.Definition
addGraphElement(element: GraphElement<N>): boolean;
Parameters
Name | Type | Description |
---|---|---|
element | GraphElement<N> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.addGraphElement([1]) // => false
b.addGraphElement([4]) // => true
b.addGraphElement([2, 3]) // => false
b.addGraphElement([4, 1]) // => true
Overrides
addGraphElements
Adds the graph elements in the given elements
StreamSource to the graph.
addGraphElements
elements
StreamSource to the graph.Definition
addGraphElements(elements:
StreamSource
<GraphElement<N>>): boolean;
Parameters
Name | Type | Description |
---|---|---|
elements | StreamSource <GraphElement<N>> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.addGraphElements([[4], [5]]) // => true
b.addGraphElements([[3, 1], [1]]) // => true
b.addGraphElements([[1, 2], [1]]) // => false
Overrides
addNode
Adds the given node
to the graph.
addNode
node
to the graph.addNodes
Adds the given nodes
to the builder.
addNodes
nodes
to the builder.Definition
addNodes(nodes:
StreamSource
<N>): boolean;
Parameters
Name | Type | Description |
---|---|---|
nodes | StreamSource <N> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.addNodes([3, 4, 5]) // => true
b.addNodes([1, 2]) // => false
Overrides
build
Returns an immutable Graph containing the links in this Builder instance.
build
Definition
build():
WithGraphValues
<Tp, N, unknown>['normal'];
const b = ArrowGraphHashed.builder<number, number>()
b.connect(1, 2)
b.addNode(3)
const g = b.build()
console.log(g.toArray())
// => [[1, 2], [3]]
Overrides
connect
Adds a connection between node1
and node2
to the graph.
connect
node1
and node2
to the graph.connectAll
Adds the connections in given connections
StreamSource
to the graph.
connectAll
connections
StreamSource
to the graph.Definition
connectAll(connections:
StreamSource
<
WithGraphValues
<Tp, N, unknown>['link']>): boolean;
Parameters
Name | Type | Description |
---|---|---|
connections | StreamSource < WithGraphValues <Tp, N, unknown>['link']> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.connectAll([[1, 2], [3, 1]]) // => true
b.connectAll([[1, 2]]) // => false
Overrides
connectIfNodesExist
Returns true if the graph has changed
connectIfNodesExist
disconnect
Removes the connection between given node1
and node2
if the connection was present.
disconnect
node1
and node2
if the connection was present.Definition
disconnect<UN = N>(node1:
RelatedTo
<N, UN>, node2:
RelatedTo
<N, UN>): boolean;
Type parameters
Name | Default | Description |
---|---|---|
UN | N |
Parameters
Name | Type | Description |
---|---|---|
node1 | RelatedTo <N, UN> | the first connection node |
node2 | RelatedTo <N, UN> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.disconnect(1, 2) // => true
b.disconnect(3, 4) // => false
Overrides
disconnectAll
Removes all connections from the given connections
StreamSource
from the graph.
disconnectAll
connections
StreamSource
from the graph.Definition
disconnectAll<UN = N>(connections:
StreamSource
<Link<
RelatedTo
<N, UN>>>): boolean;
Type parameters
Name | Default | Description |
---|---|---|
UN | N |
Parameters
Name | Type | Description |
---|---|---|
connections | StreamSource <Link< RelatedTo <N, UN>>> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.disconnectAll([[1, 2], [3, 4]]) // => true
b.disconnectAll([[3, 4], [5, 6]]) // => false
Overrides
forEach
Performs given function f
for each entry of the collection, using given state
as initial traversal state.
forEach
f
for each entry of the collection, using given state
as initial traversal state.Definition
forEach(f: (entry: [N]
|
WithGraphValues
<Tp, N, unknown>['link'], index: number, halt: () => void) => void, options?: {
state?:
TraverseState
;
}): void;
Parameters
Name | Type | Description |
---|---|---|
f | (entry: [N] | WithGraphValues <Tp, N, unknown>['link'], index: number, halt: () => void) => void | the function to perform for each entry, receiving: - entry : the next graph element- index : the index of the element- halt : a function that, if called, ensures that no new elements are passed |
options | { state?: TraverseState ; } | object containing the following - state: (optional) the traverse state |
const b = ArrowGraphHashed.of([1], [2, 3], [4]).toBuilder();
b.forEach((entry, i, halt) => {
console.log([entry]);
if (i >= 1) halt();
})
// => logs [1] [2, 3]
O(N)
Overrides
hasConnection
Returns true if the graph has a connection between given nodes node1
and node2
.
hasConnection
node1
and node2
.Definition
hasConnection<UN = N>(node1:
RelatedTo
<N, UN>, node2:
RelatedTo
<N, UN>): boolean;
Type parameters
Name | Default | Description |
---|---|---|
UN | N |
Parameters
Name | Type | Description |
---|---|---|
node1 | RelatedTo <N, UN> | the first connection node |
node2 | RelatedTo <N, UN> | the second connection node |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.hasConnection(1, 2) // => true
b.hasConnection(6, 7) // => false
Overrides
hasNode
Returns true if the graph contains the given node
.
hasNode
node
.removeNode
Removes the given node
, and any of its connections, from the graph.
removeNode
node
, and any of its connections, from the graph.removeNodes
Removes the given nodes
, and any of their connections, from the graph.
removeNodes
nodes
, and any of their connections, from the graph.Definition
removeNodes<UN = N>(nodes:
StreamSource
<
RelatedTo
<N, UN>>): boolean;
Type parameters
Name | Default | Description |
---|---|---|
UN | N |
Parameters
Name | Type | Description |
---|---|---|
nodes | StreamSource < RelatedTo <N, UN>> |
const b = ArrowGraphHashed
.of([[1, 2], [2, 3]])
.toBuilder()
b.removeNodes([1, 6, 7]) // => true
b.removeNodes([6, 7]) // => false