Undirected graph with weighted edges. More...
#include <graphs.h>
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. | |
| Public Member Functions inherited from GraphLib::Internal::UndirectedGraph< int, std::size_t, Internal::WeightedEdge< std::size_t, double > > | |
| bool | is_directed () const override |
| Indicates that this graph is undirected. | |
| void | remove_edge (I from_id, I to_id) override |
| Removes an undirected edge between two nodes. | |
| Public Member Functions inherited from GraphLib::Internal::Graph< D, I, E > | |
| virtual | ~Graph ()=default |
| Virtual destructor for safe polymorphic use. | |
| 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. | |
| Public Member Functions inherited from GraphLib::Internal::WeightedGraph< int, std::size_t, Internal::WeightedEdge< std::size_t, double > > | |
| bool | is_weighted () const override |
| Indicates that this graph is weighted. | |
| void | add_edge (const I from_id, const I to_id) override |
| Adds a weighted edge from one node to another with default weight. | |
| E::weight_type | get_edge_weight (const I from_id, const I to_id) const |
| Retrieves the weight of the edge from from_id to to_id. | |
| E::weight_type | get_total_weight () const |
| Calculates the total weight of all edges in the graph. | |
| 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. | |
Undirected graph with weighted edges.
Represents an undirected graph where edges have weights of type W.
| D | Type of data stored in each vertex. Must satisfy valid_data_type. |
| I | Type used for node IDs. Must satisfy valid_id_type. |
| W | Type of edge weights. Must satisfy valid_weight_type. |
Inherits from: