Package es.uam.eps.ir.relison.graph.fast
Class AbstractFastGraph<V>
java.lang.Object
es.uam.eps.ir.relison.graph.fast.AbstractFastGraph<V>
- Type Parameters:
V
- Type of the vertices.
- All Implemented Interfaces:
FastGraph<V>
,Graph<V>
,ReducedIndex<V>
,java.io.Serializable
- Direct Known Subclasses:
FastDirectedUnweightedGraph
,FastDirectedWeightedGraph
,FastTree
,FastUndirectedUnweightedGraph
,FastUndirectedWeightedGraph
public abstract class AbstractFastGraph<V> extends java.lang.Object implements FastGraph<V>, java.io.Serializable
Fast implementation of a graph.
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Constructor Description AbstractFastGraph(Index<V> vertices, Edges edges)
Constructor. -
Method Summary
Modifier and Type Method Description boolean
addEdge(int nodeA, int nodeB, double weight, int type)
Uncontrolled edge addition method, using ids.boolean
addEdge(V nodeA, V nodeB, double weight, int type, boolean insertNodes)
Adds a weighted edge to the graph.boolean
addNode(V node)
Adds a new node to the graph.Graph<V>
complement()
Complements the graphboolean
containsEdge(int uidx, int vidx)
Checks whether the network contains an edge or not.boolean
containsEdge(V nodeA, V nodeB)
Checks if an edge exists in the graph.boolean
containsVertex(V node)
Checks if a vertex exists in the graph.Index<V>
getAdjacencyMatrixMap()
For an adjacency matrix, obtains the mapping between indexes and nodes.int
getAdjacentEdgesCount(V node)
Calculates the number of adjacent edges of a node (not necessarily equal to the out-degree).java.util.stream.Stream<Weight<V,java.lang.Integer>>
getAdjacentMutualNodesTypes(V node)
Given a node, finds the types of the edges towards the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getAdjacentMutualNodesWeights(V node)
Given a node, finds the weights of the edges towards the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<V>
getAdjacentNodes(V node)
Given a node, finds all the nodes u such that the edge (node to u) is in the graph.java.util.stream.Stream<Weight<V,java.lang.Integer>>
getAdjacentNodesTypes(V node)
Given a node, finds the types of the edges towards the nodes u such that the edge (node to u) is in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getAdjacentNodesWeights(V node)
Given a node, finds the weights of the edges towards the nodes u such that the edge (node to u) is in the graph.java.util.stream.Stream<V>
getAllNodes()
Gets all the nodes in the graph.java.util.stream.IntStream
getAllNodesIds()
Obtains the identifiers of all the nodes in the network.long
getEdgeCount()
Measures the number of edges in the network.int
getEdgeType(V nodeA, V nodeB)
Obtains the type of an edge in the graphdouble
getEdgeWeight(int uidx, int vidx)
Obtains the weight of an edge, given the identifiers of the involved nodes.double
getEdgeWeight(V nodeA, V nodeB)
Obtains the weight of an edge in the graphint
getIncidentEdgesCount(V node)
Calculates the number of incident edges of a node (not necessarily equal to the in-degree).java.util.stream.Stream<Weight<V,java.lang.Integer>>
getIncidentMutualNodesTypes(V node)
Given a node, finds the types of the edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getIncidentMutualNodesWeights(V node)
Given a node, finds the weights of the edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<V>
getIncidentNodes(V node)
Given a node, finds all the nodes u such that the edge (u to node) is in the graph.java.util.stream.Stream<Weight<V,java.lang.Integer>>
getIncidentNodesTypes(V node)
Given a node, finds the types of the edges from the nodes u such that the edge (u to node) is in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getIncidentNodesWeights(V node)
Given a node, finds the weights of the edges from the nodes u such that the edge (u to node) is in the graph.Index<V>
getIndex()
Obtains the index for the vertices.java.util.stream.IntStream
getIsolatedNodeIds()
Obtains the set of isolated nodes in the graph.java.util.stream.Stream<V>
getIsolatedNodes()
Obtains the set of nodes without edges.int
getMutualEdgesCount(V node)
Calculates the total number of adjacent edges of a node such that there is an incident reciprocal link towards the node.java.util.stream.Stream<V>
getMutualNodes(V node)
Given a node, finds all the nodes u such that the edges (node to u) and (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Integer>>
getMutualNodesTypes(V node)
Given a node, find the types of edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getMutualNodesWeights(V node)
Given a node, finds the weights of the edges towards and from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.java.util.stream.Stream<java.lang.Integer>
getNeighborhood(int uidx, EdgeOrientation orientation)
Obtains the neighborhood of a node, given its identifier.java.util.stream.Stream<EdgeType>
getNeighborhoodTypes(int uidx, EdgeOrientation orientation)
Obtains the neighborhood of a node and the type of the edges to each other, given its identifier.java.util.stream.Stream<es.uam.eps.ir.ranksys.fast.preference.IdxPref>
getNeighborhoodWeights(int uidx, EdgeOrientation orientation)
Obtains the neighborhood of a node and the weight of the edges to each other, given its identifier.java.util.stream.Stream<V>
getNeighbourhood(V node, EdgeOrientation direction)
Gets all the nodes in the neighbourhood of a node given by a direction.java.util.stream.Stream<V>
getNeighbourNodes(V node)
Given a node, finds all the nodes u so that either (node to u) or (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Integer>>
getNeighbourNodesTypes(V node)
Given a node, finds the types of the edges from the nodes u such that the edge (node to u) or the edge (u to node) are in the graph.java.util.stream.Stream<Weight<V,java.lang.Double>>
getNeighbourNodesWeights(V node)
Given a node, finds the weights of the edges from the nodes u such that the edge (node to u) or the edge (u to node) are in the graph.java.util.stream.IntStream
getNodesIdsWithEdges(EdgeOrientation direction)
Obtains the identifiers of the nodes which have edges.java.util.stream.Stream<V>
getNodesWithAdjacentNeighbors()
Obtains the set of nodes which have adjacent edges.java.util.stream.Stream<V>
getNodesWithIncidentNeighbors()
Obtains the set of nodes which have incident edges.java.util.stream.Stream<V>
getNodesWithMutualNeighbors()
Obtains the set of nodes having mutual edges.java.util.stream.Stream<V>
getNodesWithNeighbors()
Obtains the set of nodes having either incident or adjacent edges.java.util.stream.Stream<V>
getNodesWithNeighbors(EdgeOrientation direction)
Obtains the set of nodes with edges in a particular direction.long
getVertexCount()
Measures the number of nodes in the network.boolean
hasAdjacentNeighbors(V u)
Checks if the user has adjacent edges or not.boolean
hasIncidentNeighbors(V u)
Checks if the user has incident edges or not.boolean
hasMutualNeighbors(V u)
Checks if the user has mutual edges.boolean
hasNeighbors(V u)
Checks if the user shares at least an edge with other user.V
idx2object(int idx)
Gets the object corresponding to a certain index.int
object2idx(V u)
Gets the index of a given object.boolean
removeEdge(V orig, V dest)
Removes an edge from the graph.boolean
removeNode(V u)
Removes a node from the graph.boolean
updateEdgeType(V nodeA, V nodeB, int type)
Updates the type of an edge.boolean
updateEdgeWeight(int nodeA, int nodeB, double weight)
Uncontrolled edge update method, using ids.boolean
updateEdgeWeight(V nodeA, V nodeB, double weight)
Updates the weight of an edge.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface es.uam.eps.ir.relison.graph.Graph
addEdge, addEdge, addEdge, addEdge, addEdge, degree, degree, getAdjacencyMatrix, getAdjacentNodesCount, getIncidentNodesCount, getMutualNodesCount, getNeighbourEdgesCount, getNeighbourhoodSize, getNeighbourhoodTypes, getNeighbourhoodWeights, getNeighbourNodesCount, hasNeighbors, inDegree, isDirected, isMultigraph, isMutual, isWeighted, mutualDegree, outDegree
-
Field Details
-
Constructor Details
-
AbstractFastGraph
Constructor.- Parameters:
vertices
- An index for the vertices of the graph.edges
- Edges.
-
-
Method Details
-
addNode
Description copied from interface:Graph
Adds a new node to the graph. -
addEdge
Description copied from interface:Graph
Adds a weighted edge to the graph.- Specified by:
addEdge
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.weight
- The weight.type
- The edge type.insertNodes
- If true, nodes will be inserted if they do not exist. If false, the edge will only be added if both nodes are inserted.- Returns:
- if the edge is correctly added, false if not.
-
getAllNodes
Description copied from interface:Graph
Gets all the nodes in the graph.- Specified by:
getAllNodes
in interfaceGraph<V>
- Returns:
- a stream of all the nodes in the graph.
-
getIncidentNodes
Description copied from interface:Graph
Given a node, finds all the nodes u such that the edge (u to node) is in the graph.- Specified by:
getIncidentNodes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream of the incident nodes.
-
getAdjacentNodes
Description copied from interface:Graph
Given a node, finds all the nodes u such that the edge (node to u) is in the graph.- Specified by:
getAdjacentNodes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing the adjacent nodes.
-
getNeighbourNodes
Description copied from interface:Graph
Given a node, finds all the nodes u so that either (node to u) or (u to node) are in the graph.- Specified by:
getNeighbourNodes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood.
-
getMutualNodes
Description copied from interface:Graph
Given a node, finds all the nodes u such that the edges (node to u) and (u to node) are in the graph.- Specified by:
getMutualNodes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes which share reciprocal links.
-
getNeighbourhood
Description copied from interface:Graph
Gets all the nodes in the neighbourhood of a node given by a direction.- Specified by:
getNeighbourhood
in interfaceGraph<V>
- Parameters:
node
- The node.direction
- The direction of the links.- Returns:
- A stream containing the corresponding neighbourhood.
-
getIncidentEdgesCount
Description copied from interface:Graph
Calculates the number of incident edges of a node (not necessarily equal to the in-degree).- Specified by:
getIncidentEdgesCount
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- the number of incident neighbours of the node if it is contained in the graph, -1 if not.
-
getAdjacentEdgesCount
Description copied from interface:Graph
Calculates the number of adjacent edges of a node (not necessarily equal to the out-degree).- Specified by:
getAdjacentEdgesCount
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- the degree of the node if it is contained in the graph, -1 if not.
-
getMutualEdgesCount
Description copied from interface:Graph
Calculates the total number of adjacent edges of a node such that there is an incident reciprocal link towards the node.- Specified by:
getMutualEdgesCount
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- the number of reciprocal links starting from the node.
-
containsVertex
Description copied from interface:Graph
Checks if a vertex exists in the graph.- Specified by:
containsVertex
in interfaceGraph<V>
- Parameters:
node
- The vertex to check.- Returns:
- true if the vertex is contained in the graph, false if not.
-
containsEdge
Description copied from interface:Graph
Checks if an edge exists in the graph.- Specified by:
containsEdge
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.- Returns:
- true if the edge is contained in the graph, false if not.
-
getEdgeWeight
Description copied from interface:Graph
Obtains the weight of an edge in the graph- Specified by:
getEdgeWeight
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.- Returns:
- The corresponding weight. If the edge does not exist, NaN
-
updateEdgeWeight
Description copied from interface:Graph
Updates the weight of an edge.- Specified by:
updateEdgeWeight
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.weight
- The new weight.- Returns:
- true if everything goes OK, false if the edge does not exist or something fails.
-
updateEdgeType
Description copied from interface:Graph
Updates the type of an edge.- Specified by:
updateEdgeType
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.type
- The new type.- Returns:
- true if everything goes OK, false if the edge does not exist or something fails.
-
getIncidentNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges from the nodes u such that the edge (u to node) is in the graph.- Specified by:
getIncidentNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing the adjacent nodes and weights.
-
getAdjacentNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges towards the nodes u such that the edge (node to u) is in the graph.- Specified by:
getAdjacentNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing the adjacent nodes and weights.
-
getNeighbourNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges from the nodes u such that the edge (node to u) or the edge (u to node) are in the graph.- Specified by:
getNeighbourNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and weights.
-
getAdjacentMutualNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges towards the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.- Specified by:
getAdjacentMutualNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and weights.
-
getIncidentMutualNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.- Specified by:
getIncidentMutualNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and weights.
-
getMutualNodesWeights
Description copied from interface:Graph
Given a node, finds the weights of the edges towards and from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph. It finds the average value of the outgoing and incoming links.- Specified by:
getMutualNodesWeights
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and weights.
-
getMutualNodesTypes
Description copied from interface:Graph
Given a node, find the types of edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.- Specified by:
getMutualNodesTypes
in interfaceGraph<V>
- Parameters:
node
- the node.- Returns:
- a stream containing all the nodes in the neighbourhood and types.
-
getEdgeType
Description copied from interface:Graph
Obtains the type of an edge in the graph- Specified by:
getEdgeType
in interfaceGraph<V>
- Parameters:
nodeA
- The incident node.nodeB
- The adjacent node.- Returns:
- The corresponding type. If the edge does not exist, -1.
-
getIncidentNodesTypes
Description copied from interface:Graph
Given a node, finds the types of the edges from the nodes u such that the edge (u to node) is in the graph.- Specified by:
getIncidentNodesTypes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream of the incident nodes and types.
-
getAdjacentNodesTypes
Description copied from interface:Graph
Given a node, finds the types of the edges towards the nodes u such that the edge (node to u) is in the graph.- Specified by:
getAdjacentNodesTypes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing the adjacent nodes and types.
-
getNeighbourNodesTypes
Description copied from interface:Graph
Given a node, finds the types of the edges from the nodes u such that the edge (node to u) or the edge (u to node) are in the graph.- Specified by:
getNeighbourNodesTypes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and types.
-
getAdjacentMutualNodesTypes
Description copied from interface:Graph
Given a node, finds the types of the edges towards the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.- Specified by:
getAdjacentMutualNodesTypes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and types.
-
getIncidentMutualNodesTypes
Description copied from interface:Graph
Given a node, finds the types of the edges from the nodes u such that the edge (node to u) and the edge (u to node) are in the graph.- Specified by:
getIncidentMutualNodesTypes
in interfaceGraph<V>
- Parameters:
node
- The node.- Returns:
- A stream containing all the nodes in the neighbourhood and types.
-
getVertexCount
public long getVertexCount()Description copied from interface:Graph
Measures the number of nodes in the network.- Specified by:
getVertexCount
in interfaceGraph<V>
- Returns:
- the number of nodes.
-
getEdgeCount
public long getEdgeCount()Description copied from interface:Graph
Measures the number of edges in the network.- Specified by:
getEdgeCount
in interfaceGraph<V>
- Returns:
- the number of edges.
-
removeEdge
Description copied from interface:Graph
Removes an edge from the graph.- Specified by:
removeEdge
in interfaceGraph<V>
- Parameters:
orig
- The incident node of the edge to remove.dest
- The adjacent node of the edge to remove.- Returns:
- true if everything went ok, false if not.
-
removeNode
Description copied from interface:Graph
Removes a node from the graph.- Specified by:
removeNode
in interfaceGraph<V>
- Parameters:
u
- Node to remove.- Returns:
- true if the edge is correctly removed, false if not.
-
object2idx
Description copied from interface:ReducedIndex
Gets the index of a given object.- Specified by:
object2idx
in interfaceReducedIndex<V>
- Parameters:
u
- Object to obtain.- Returns:
- the index if the object exists, -1 if not.
-
idx2object
Description copied from interface:ReducedIndex
Gets the object corresponding to a certain index.- Specified by:
idx2object
in interfaceReducedIndex<V>
- Parameters:
idx
- The index.- Returns:
- the object corresponding to the index.
-
getIndex
Obtains the index for the vertices. -
getEdgeWeight
public double getEdgeWeight(int uidx, int vidx)Description copied from interface:FastGraph
Obtains the weight of an edge, given the identifiers of the involved nodes.- Specified by:
getEdgeWeight
in interfaceFastGraph<V>
- Parameters:
uidx
- identifier of the first user.vidx
- identifier of the second user.- Returns:
- the weight if it exists, an error value otherwise.
-
getNeighborhood
public java.util.stream.Stream<java.lang.Integer> getNeighborhood(int uidx, EdgeOrientation orientation)Description copied from interface:FastGraph
Obtains the neighborhood of a node, given its identifier.- Specified by:
getNeighborhood
in interfaceFastGraph<V>
- Parameters:
uidx
- the identifier of the node.orientation
- the orientation of the neighborhood to retrieve.- Returns:
- an stream containing the neighbors of the node.
-
getNeighborhoodWeights
public java.util.stream.Stream<es.uam.eps.ir.ranksys.fast.preference.IdxPref> getNeighborhoodWeights(int uidx, EdgeOrientation orientation)Description copied from interface:FastGraph
Obtains the neighborhood of a node and the weight of the edges to each other, given its identifier.- Specified by:
getNeighborhoodWeights
in interfaceFastGraph<V>
- Parameters:
uidx
- the identifier of the node.orientation
- the orientation of the neighborhood to retrieve.- Returns:
- an stream containing the weights of neighbors of the node.
-
getNeighborhoodTypes
public java.util.stream.Stream<EdgeType> getNeighborhoodTypes(int uidx, EdgeOrientation orientation)Description copied from interface:FastGraph
Obtains the neighborhood of a node and the type of the edges to each other, given its identifier.- Specified by:
getNeighborhoodTypes
in interfaceFastGraph<V>
- Parameters:
uidx
- the identifier of the node.orientation
- the orientation of the neighborhood to retrieve.- Returns:
- an stream containing the edge types of the neighbors of the node.
-
getAllNodesIds
public java.util.stream.IntStream getAllNodesIds()Description copied from interface:FastGraph
Obtains the identifiers of all the nodes in the network.- Specified by:
getAllNodesIds
in interfaceFastGraph<V>
- Returns:
- an stream containing the vertex identifiers.
-
containsEdge
public boolean containsEdge(int uidx, int vidx)Description copied from interface:FastGraph
Checks whether the network contains an edge or not.- Specified by:
containsEdge
in interfaceFastGraph<V>
- Parameters:
uidx
- the identifier of the first vertexvidx
- the identifier of the second vertex- Returns:
- true if the edge exists, false otherwise.
-
addEdge
public boolean addEdge(int nodeA, int nodeB, double weight, int type)Description copied from interface:FastGraph
Uncontrolled edge addition method, using ids. -
updateEdgeWeight
public boolean updateEdgeWeight(int nodeA, int nodeB, double weight)Description copied from interface:FastGraph
Uncontrolled edge update method, using ids.- Specified by:
updateEdgeWeight
in interfaceFastGraph<V>
- Parameters:
nodeA
- Identifier of the first node.nodeB
- Identifier of the second node.weight
- Weight of the link.- Returns:
- true if everything went ok, false otherwise.
-
getIsolatedNodes
Description copied from interface:Graph
Obtains the set of nodes without edges.- Specified by:
getIsolatedNodes
in interfaceGraph<V>
- Returns:
- the set of nodes without edges.
-
getNodesWithNeighbors
Description copied from interface:Graph
Obtains the set of nodes with edges in a particular direction.- Specified by:
getNodesWithNeighbors
in interfaceGraph<V>
- Parameters:
direction
- the particular direction- Returns:
- the set of nodes with edges in the given direction.
-
getNodesIdsWithEdges
Description copied from interface:FastGraph
Obtains the identifiers of the nodes which have edges.- Specified by:
getNodesIdsWithEdges
in interfaceFastGraph<V>
- Parameters:
direction
- the orientation selection.- Returns:
- a stream containing the corresponding nodes.
-
getIsolatedNodeIds
public java.util.stream.IntStream getIsolatedNodeIds()Description copied from interface:FastGraph
Obtains the set of isolated nodes in the graph.- Specified by:
getIsolatedNodeIds
in interfaceFastGraph<V>
- Returns:
- a stream containing the isolated nodes.
-
getNodesWithAdjacentNeighbors
Description copied from interface:Graph
Obtains the set of nodes which have adjacent edges.- Specified by:
getNodesWithAdjacentNeighbors
in interfaceGraph<V>
- Returns:
- the set of nodes which have adjacent edges.
-
getNodesWithIncidentNeighbors
Description copied from interface:Graph
Obtains the set of nodes which have incident edges.- Specified by:
getNodesWithIncidentNeighbors
in interfaceGraph<V>
- Returns:
- the set of nodes which have incident edges.
-
getNodesWithNeighbors
Description copied from interface:Graph
Obtains the set of nodes having either incident or adjacent edges.- Specified by:
getNodesWithNeighbors
in interfaceGraph<V>
- Returns:
- the set of nodes which have incident or adjacent edges.
-
getNodesWithMutualNeighbors
Description copied from interface:Graph
Obtains the set of nodes having mutual edges.- Specified by:
getNodesWithMutualNeighbors
in interfaceGraph<V>
- Returns:
- the set of nodes which have mutual edges.
-
hasAdjacentNeighbors
Description copied from interface:Graph
Checks if the user has adjacent edges or not.- Specified by:
hasAdjacentNeighbors
in interfaceGraph<V>
- Parameters:
u
- The user.- Returns:
- true if the user has adjacent edges, false if it is a sink or isolated node.
-
hasIncidentNeighbors
Description copied from interface:Graph
Checks if the user has incident edges or not.- Specified by:
hasIncidentNeighbors
in interfaceGraph<V>
- Parameters:
u
- the user.- Returns:
- true if the user has incident edges, false if it is a source or isolated node.
-
hasNeighbors
Description copied from interface:Graph
Checks if the user shares at least an edge with other user.- Specified by:
hasNeighbors
in interfaceGraph<V>
- Parameters:
u
- The user.- Returns:
- true if the user is not isolated, false otherwise.
-
hasMutualNeighbors
Description copied from interface:Graph
Checks if the user has mutual edges.- Specified by:
hasMutualNeighbors
in interfaceGraph<V>
- Parameters:
u
- The user.- Returns:
- true if the user has mutual edges, false otherwise.
-
complement
Description copied from interface:Graph
Complements the graph- Specified by:
complement
in interfaceGraph<V>
- Returns:
- the complementary graph.
-
getAdjacencyMatrixMap
Description copied from interface:Graph
For an adjacency matrix, obtains the mapping between indexes and nodes.- Specified by:
getAdjacencyMatrixMap
in interfaceGraph<V>
- Returns:
- the mapping between indexes and nodes.
-