酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

题目描述 1、用邻接矩阵存储方式,表示下面的图,并输出。 2、由上面的邻接矩阵产生邻接表,并输出。 3、编程完成从顶点0开始的深度优先遍历和广度优先遍历。 因邻接表不唯一,本题中要求邻接表按节点递增有序排列。可参考sample。 输入 无 输出 见sample。 先输出邻接矩阵。 空一行。 输出邻接表。 空一行。 输出dfs。 空一行。 输出bfs。 样例输出 复制 0 5 0 7 0 0 0 0 4 0 0 0 8 0 0 0 0 9 0 0 5 0 0 6 0 0 0 5 0 0 3 0 0 0 1 0 0: 1 3 1: 2 2: 0 5 3: 2 5 4: 3 5: 0 4 0 1 2 5 4 3 0 1 3 2 5 4 用c++

#include <iostream> #include <vector> #include <queue> using namespace std; void printMatrix(vector<vector<int>>& matrix) { for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[i].size(); j++) { cout << matrix[i][j] << " "; } cout << endl; } } void printAdjList(vector<vector<int>>& adjList) { for (int i = 0; i < adjList.size(); i++) { cout << i << ": "; for (int j = 0; j < adjList[i].size(); j++) { cout << adjList[i][j] << " "; } cout << endl; } } void dfs(vector<vector<int>>& adjList, vector<bool>& visited, int node) { visited[node] = true; cout << node << " "; for (int i = 0; i < adjList[node].size(); i++) { if (!visited[adjList[node][i]]) { dfs(adjList, visited, adjList[node][i]); } } } void bfs(vector<vector<int>>& adjList, vector<bool>& visited) { queue<int> q; q.push(0); while (!q.empty()) { int node = q.front(); q.pop(); visited[node] = true; cout << node << " "; for (int i = 0; i < adjList[node].size(); i++) { if (!visited[adjList[node][i]]) { q.push(adjList[node][i]); visited[adjList[node][i]] = true; } } } } int main() { vector<vector<int>> matrix = {{0, 5, 0, 7, 0, 0}, {0, 0, 4, 0, 0, 0}, {8, 0, 0, 0, 0, 9}, {0, 0, 5, 0, 0, 6}, {0, 0, 0, 5, 0, 0}, {3, 0, 0, 0, 1, 0}}; printMatrix(matrix); cout << endl; vector<vector<int>> adjList(matrix.size()); for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[i].size(); j++) { if (matrix[i][j] != 0) { adjList[i].push_back(j); } } } printAdjList(adjList); cout << endl; vector<bool> visited(matrix.size(), false); cout << "dfs: "; dfs(adjList, visited, 0); cout << endl << endl; cout << "bfs: "; fill(visited.begin(), visited.end(), false); bfs(adjList, visited); return 0; } [2024-11-25 16:18:26 | AI写代码神器 | 1517点数解答]

相关提问