38#include <gtest/gtest.h>
53void push_front(
Slink & head, TestNode & node)
93 for (
auto & node :
nodes)
94 push_front(head, node);
100 auto * owner = TestNode::slink_to_type(it);
109 auto * owner = TestNode::slink_to_type(
removed);
120 push_front(head, node);
Singly linked handle to list nodes.
void insert_next(Slink *p)
Insert link p right after this.
Slink * remove_next()
Remove the link right after this.
constexpr bool is_empty() const noexcept
Return true if this link is empty (points to itself).
constexpr Slink *& get_next() noexcept
Return the next link.
DynArray< Graph::Node * > nodes
Main namespace for Aleph-w library functions.
Divide_Conquer_DP_Result< Cost > divide_and_conquer_partition_dp(const size_t groups, const size_t n, Transition_Cost_Fn transition_cost, const Cost inf=dp_optimization_detail::default_inf< Cost >())
Optimize partition DP using divide-and-conquer optimization.
Singly linked list base class.
#define SLINK_TO_TYPE(type_name, link_name)
Generate a conversion function from the link name to the enclosing structure.
Graph_Anode< Empty_Class > TestNode