(栈)学习笔记1
(集合与队列)学习笔记2
(map)学习笔记3
正文
DFS(深度优先搜索)是一种图形搜索算法。它通过沿着树的深度遍历树的节点来执行搜索,通常用于求解最短路径问题。
在 C++ 中,可以使用递归或栈来实现 DFS 算法。下面是一个递归实现的示例代码:
void DFS(Node *root) {
if (root == nullptr) return;
// 访问当前节点
visit(root);
// 递归访问子节点
for (Node *child : root->children) {
DFS(child);
}
}
栈实现的示例代码如下:
void DFS(Node *root) {
if (root == nullptr) return;
stack<Node*> s;
s.push(root);
while (!s.empty()) {
Node *node = s.top();
s.pop();
// 访问当前节点
visit(node);
// 将子节点添加到栈中
for (Node *child : node->children) {
s.push(child);
}
}
}
在这些代码中,visit() 函数用于访问当前节点。您可以在这个函数中定义对当前节点执行的操作,例如记录节点的值或更新答案。
__builtin_popcount(s) 直接返回s 二进制下的1的个数
unique(a,a+n); 对数组a进行去重,前提是数组a是有序的,并且返回最后一个元素对应的指针
https://zhuanlan.zhihu.com/p/164555377
搜索