A graph class representing unweighted graphs. More...
#include <abstract_unweighted_graph.h>
Public Member Functions | |
| bool | is_weighted () const override |
| Indicates that this graph is unweighted. | |
| void | add_edge (const I from_id, const I to_id) override |
| Adds an unweighted edge from one node to another. | |
| Public Member Functions inherited from GraphLib::Internal::Graph< D, I, E > | |
| virtual | ~Graph ()=default |
| Virtual destructor for safe polymorphic use. | |
| virtual bool | is_directed () const =0 |
| Check if the graph is directed. | |
| constexpr bool | operator== (const Graph &other) const |
| Equality comparison between graphs. | |
| bool | is_full () |
| Checks if the graph has reached the maximum number of nodes. | |
| bool | node_exists (const id_type id) const |
| Check if a node with the specified ID exists. | |
| id_type | node_count () const |
| Get the number of nodes in the graph. | |
| size_t | edge_count () const |
| Get the number of edges in the graph. | |
| std::unordered_set< id_type > | get_nodes () const |
| Retrieve the set of all node IDs in the graph. | |
| const data_type & | get_node_data (const id_type id) const |
| Access the data associated with a node by its ID. | |
| const std::set< id_type > | get_neighbors (const id_type id) const |
| Get neighbors (adjacent node IDs) of a given node. | |
| bool | has_edge (const id_type from_id, const id_type to_id) const |
| Check if an edge exists between two nodes. | |
| edge_type | get_edge (const id_type from_id, const id_type to_id) const |
| Retrieve the edge information between two nodes. | |
| std::set< edge_type > | get_edges (const id_type from_id) const |
| Get all edges originating from a given node. | |
| void | print_data_map () const |
| Prints the contents of the data_map_ to standard output. | |
| void | print_adjacency_list () const |
| Outputs the graph as an adjacency list to the given stream. | |
| void | print_with_data (std::ostream &os) const |
| Outputs the graph as an adjacency list to the given stream but with its data. | |
| void | print_adjacency_matrix () const |
| Prints the adjacency matrix of the graph. | |
| id_type | add_node (const data_type data) |
| Add a new node with the given data. | |
| id_type | add_node () |
| Add a new node with default data. | |
| void | add_node_with_id (const id_type id, const data_type data) |
| Insert a new node with a specified ID and associated data. | |
| void | add_node_with_id (const id_type id) |
| Insert a new node with a specified ID. | |
| void | remove_node (const id_type id) |
| Remove a node by ID. | |
| void | set_node_data (const id_type id, const data_type data) |
| Update the data of a node. | |
| virtual void | remove_edge (const id_type from_id, const id_type to_id)=0 |
| Remove an edge from one node to another. | |
Additional Inherited Members | |
| Public Types inherited from GraphLib::Internal::Graph< D, I, E > | |
| using | data_type = D |
| Alias for the data type of nodes. | |
| using | id_type = I |
| Alias for the node ID type. | |
| using | edge_type = E |
| Alias for the edge type. | |
| Protected Member Functions inherited from GraphLib::Internal::Graph< D, I, E > | |
| virtual void | add_edge_impl (const id_type from_id, const edge_type edge) |
| Helper to add an edge including reverse edge if undirected. | |
| Protected Attributes inherited from GraphLib::Internal::Graph< D, I, E > | |
| AdjacencyList< id_type, edge_type > | adj_list_ {} |
| Stores edges as adjacency list. | |
| std::unordered_map< id_type, data_type > | data_map_ {} |
| Maps node IDs to node data. | |
| id_type | highest_id_ {} |
| IDs start at 1 to avoid off-by-one errors when giving node count. | |
A graph class representing unweighted graphs.
This class inherits from the generic Graph base class and specializes the behavior to unweighted graphs by:
| D | Data type stored in nodes. |
| I | Type of node IDs. |
| E | Type of edges. |
Definition at line 39 of file abstract_unweighted_graph.h.
|
inlineoverridevirtual |
Adds an unweighted edge from one node to another.
Creates an edge with no weight information (default constructed), connecting from_id to to_id.
| from_id | The ID of the origin node. |
| to_id | The ID of the target node. |
Implements GraphLib::Internal::Graph< D, I, E >.
Definition at line 59 of file abstract_unweighted_graph.h.
|
inlinenodiscardoverridevirtual |
Indicates that this graph is unweighted.
Implements GraphLib::Internal::Graph< D, I, E >.
Definition at line 45 of file abstract_unweighted_graph.h.