当前位置: 首页 > news >正文

淘宝网站是语言用什么做的七牛部署WordPress

淘宝网站是语言用什么做的,七牛部署WordPress,普斯泰网站建设,顺义电大网上作业在那个网站做西江月・证明 即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。 反之亦然同理,推论自然成立。略去过程Q.E.D.,由上可知证毕。 有向图的遍历可以使用深度优先搜索(DFS)和广度优先搜索&#xff08…

西江月・证明


即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。
反之亦然同理,推论自然成立。略去过程Q.E.D.,由上可知证毕。

有向图的遍历可以使用深度优先搜索(DFS)和广度优先搜索(BFS)两种算法来实现。

有向图的遍历

1.DFS遍历有向图的步骤:

  1. 选择一个起始节点,标记为已访问。
  2. 访问其邻接节点中第一个未被访问的节点,标记为已访问。
  3. 以该节点为起始节点,重复步骤2,直到没有未访问的邻接节点。
  4. 回溯到上一个节点,重复步骤2和步骤3,直到所有节点都被访问。

DFS遍历可以使用递归或栈来实现。

#include<bits/stdc++.h>
using namespace std;// 建立有向图
void build_graph(vector<vector<int>>& graph, int num_edges) {for (int i = 0; i < num_edges; i++) {int from, to;cin >> from >> to;graph[from].push_back(to);}
}// 有向图的深度优先遍历
void dfs(vector<vector<int>>& graph, int node, vector<bool>& visited, stack<int>& result) {visited[node] = true;for (int i = 0; i < graph[node].size(); i++) {int next_node = graph[node][i];if (!visited[next_node]) {dfs(graph, next_node, visited, result);}}result.push(node);
}// 输出拓扑排序结果
void print_topological_order(stack<int>& result) {while (!result.empty()) {cout << result.top() << " ";result.pop();}
}int main() {int num_nodes, num_edges;cin >> num_nodes >> num_edges;// 建立有向图vector<vector<int>> graph(num_nodes);build_graph(graph, num_edges);// 定义visited数组vector<bool> visited(num_nodes, false);// 定义结果栈stack<int> result;// 对每个未被遍历的节点进行深度优先遍历for (int i = 0; i < num_nodes; i++) {if (!visited[i]) {dfs(graph, i, visited, result);}}// 输出拓扑排序结果print_topological_order(result);return 0;
}

2.BFS遍历有向图的步骤:

  1. 选择一个起始节点,标记为已访问,并将其加入队列。
  2. 从队列中取出第一个节点,访问其邻接节点中第一个未被访问的节点,标记为已访问,并将其加入队列。
  3. 重复步骤2,直到队列为空。
  4. 如果还有未访问的节点,选择其中一个作为新的起始节点,重复步骤1~3。

BFS遍历可以使用队列来实现。

#include<bits/stdc++.h>
using namespace std;void bfs(vector<vector<int>>& graph, vector<bool>& visited, int start) {queue<int> q;visited[start] = true;q.push(start);while (!q.empty()) {int curr = q.front();cout << curr << " ";q.pop();for (int neighbor : graph[curr]) {if (!visited[neighbor]) {visited[neighbor] = true;q.push(neighbor);}}}
}int main() {int n = 6; // number of nodes// adjacency list representation of the graphvector<vector<int>> graph(n);graph[0] = {1, 2};graph[1] = {0, 2, 3, 4};graph[2] = {0, 1, 3};graph[3] = {1, 2, 4};graph[4] = {1, 3, 5};graph[5] = {4};// mark all nodes as not visitedvector<bool> visited(n, false);// perform BFS traversal starting from node 0bfs(graph, visited, 0);return 0;
}

无向图的遍历

无向图的遍历有两种方法:深度优先搜索(DFS)和广度优先搜索(BFS)。

1. 深度优先搜索(DFS)

深度优先搜索是一种递归的搜索方式,从一个起点出发,沿着一条路径一直往下搜索直到走到尽头,然后回溯到之前的节点,继续搜索其他未被访问的节点。具体步骤如下:

(1)访问起点节点,并将其标记为已访问。

(2)从起点节点出发,搜索与其直接相邻的未被访问的节点。

(3)如果找到了一个未被访问的节点,就继续以该节点为起点递归搜索,直到无法再继续搜索为止。

(4)当所有与当前节点直接相邻的节点都被访问过,回溯到之前的节点,继续搜索其他未被访问的节点。

(5)重复上述步骤,直到所有节点都被访问过。

#include<bits/stdc++.h>
using namespace std;void dfs(int u, vector<bool>& visited, vector<vector<int>>& adjList) {visited[u] = true;    // 标记节点u为已访问cout << u << " ";     // 输出节点u// 遍历所有与节点u相邻的节点for (int v : adjList[u]) {if (!visited[v]) {dfs(v, visited, adjList);    // 递归访问节点v}}
}void dfsTraversal(int n, vector<vector<int>>& adjList) {vector<bool> visited(n + 1, false);    // 初始化所有节点为未访问状态for (int i = 1; i <= n; i++) {if (!visited[i]) {    // 如果节点i未被访问过,从节点i开始DFS遍历dfs(i, visited, adjList);}}
}int main() {int n, m;cin >> n >> m;    // 读入节点数和边数vector<vector<int>> adjList(n + 1);    // 邻接表for (int i = 1; i <= m; i++) {int u, v;cin >> u >> v;    // 读入一条边的两个端点adjList[u].push_back(v);adjList[v].push_back(u);    // 无向图,所以需要两条边}dfsTraversal(n, adjList);    // DFS遍历return 0;
}

2. 广度优先搜索(BFS)

广度优先搜索是一种迭代的搜索方式,从一个起点出发,依次访问其所有相邻的节点,并将这些节点加入一个队列中,在队列中按照先进先出的顺序继续访问队列中的节点,直到队列为空为止。具体步骤如下:

(1)访问起点节点,并将其标记为已访问。

(2)将起点节点放入一个队列中。

(3)从队列中取出第一个节点,并访问其所有未被访问的相邻节点,并将这些节点加入队列中。

(4)重复步骤(3),直到队列为空为止。

(5)所有被访问过的节点组成了图的遍历。

#include<bits/stdc++.h>
using namespace std;void bfs(vector<vector<int>>& graph, vector<bool>& visited, int start) {queue<int> q;visited[start] = true;q.push(start);while (!q.empty()) {int curr = q.front();cout << curr << " ";q.pop();for (int neighbor : graph[curr]) {if (!visited[neighbor]) {visited[neighbor] = true;q.push(neighbor);}}}
}int main() {int n = 6; // number of nodes// adjacency list representation of the graphvector<vector<int>> graph(n);graph[0] = {1, 2};graph[1] = {0, 2, 3, 4};graph[2] = {0, 1, 3};graph[3] = {1, 2, 4};graph[4] = {1, 3, 5};graph[5] = {4};// mark all nodes as not visitedvector<bool> visited(n, false);// perform BFS traversal starting from node 0bfs(graph, visited, 0);return 0;
}

http://www.yayakq.cn/news/694308/

相关文章:

  • wordpress建站服务器商洛高新建设开发集团网站
  • 百度网站优化是什么意思商城类网站建设+数据库
  • 苏州行业网站建设报价中药网站模板
  • 怎样查询网站的点击量wordpress 淘宝客赚钱
  • 网站建设目的网站在线报名怎么做
  • 电子商务网站建设需要网站建设的技能有哪些方面
  • 会HTML怎么做网站应用公园是免费的吗
  • 怎么选择手机网站建设asp 免费网站模板
  • 国家官方网站电脑一切正常就是打不开浏览器
  • 免费做网站怎么做网站吗2信息门户网站建设合同
  • 网站建设公司专业公司网站建设怎么
  • 传统网站和手机网站的区别是什么做一页简单的h5多少钱
  • 大学生一个人做网站广东狮山网站建设
  • 达州网站建设wordpress超级大菜单如何使用
  • 自己学网站建设聚财的公司名字
  • 怎么做网站卖东西潍坊 优化型网站建设
  • 网站建设方案 ppt中投中原建设有限公司官方网站
  • 网站开发平台论文方案 网站建设
  • dedecms 企业网站做金融网站需要什么营业执照
  • 网站前置审批在哪里办邹城网站建设v556
  • 做网站后台需要什么知识乐清市规划局
  • 网站可视化编辑中国建设银行网站 个人
  • 青海个人旅游网站建设jsp做网站实例
  • 五金表带厂东莞网站建设泰州网站制作策划
  • 大连网站设计哪里有做qq企业邮箱怎么开通注册
  • 网站设计公司网站制作做的网站太大怎么办
  • 湖州建设企业网站做网站加推广
  • 企业网站外包建设网页浏览器怎么卸载
  • 公司网站需要服务器吗网站开发完整教程
  • 网站top排行榜太原那有网站设计公司