GraphDom
Loading...
Searching...
No Matches
adj_list.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_ADJ_LIST_H
8#define GRAPHDOM_ADJ_LIST_H
9
10#include "../graph.h"
11#include "vertex_container.h"
12#include "base_adj_list.h"
13#include "../multiset_graph.h"
14#include "multiset_graph_adj_list.h"
15
16namespace graphdom {
31 template <typename VertexType>
32 class graph<VertexType>::adj_list : public graph<VertexType>::base_adj_list< const graph<VertexType>::vertex_container* > {
33 public:
34 adj_list() = delete;
35 adj_list(const adj_list& other);
36 adj_list(const typename multiset_graph<VertexType>::adj_list& other);
37
38 ~adj_list() = default;
39
40 explicit operator typename multiset_graph<VertexType>::adj_list() const;
41
42 adj_list& operator=(const adj_list&) = delete;
43 adj_list& operator=(adj_list&&) = delete;
44
45 [[nodiscard]] graph<VertexType>::adj_list_iterator begin() const;
46 [[nodiscard]] graph<VertexType>::adj_list_iterator end() const;
47 [[nodiscard]] graph<VertexType>::adj_list_const_iterator cbegin() const;
48 [[nodiscard]] graph<VertexType>::adj_list_const_iterator cend() const;
49
55 private:
56 adj_list(
57 const graph<VertexType>* adj_list_owner_graph_pointer,
58 graph<VertexType>::graph_edges_type adj_list_owner_graph_edges_type,
59 const graph<VertexType>::vertex_container* adj_list_common_begin_point_vertex_container_pointer,
60 typename graph<VertexType>::edges_type_selection_type adj_list_edges_type_selection = none
61 );
62 };
63}
64
65#include "impl/adj_list.h"
66
67#endif //GRAPHDOM_ADJ_LIST_H
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition const_adj_list.h:35
Every valid instance of this class can be used to identify a specific vertex of a graph and to access...
Definition vertex_handle.h:32
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition multiset_graph_adj_list.h:31
Definition adj_list.h:16