我创建了一个创建邻接表(图论)的基本类。我编写了一个深度优先搜索功能,但它的设计很糟糕,目前有 50 行长。我正在尝试减小函数的大小并提高函数的可读性。
template <class T>
class adj_list
{
public:
void add_node (const T data);
void add_edge(const T first, const T second);
void remove_node (const T data);
void remove_edge(const T first, const T second);
void dfs(const T node, const T lookfor);
void print_list() const;
private:
std::map<T, std::set<T>> graph;
};
所以我需要有 2-3 个“助手”(不确定如何称呼这些)函数,它们在 dfs 算法中执行特定操作。他们必须阅读私有图,但不能修改它。
将这些新的较小功能添加为公共成员是我的最佳选择吗?我不认为我希望用户使用这些功能。解决此问题的最佳方法是什么?