数据结构实现图的存储,输出存储结构示意图完整代码
时间: 2024-01-30 22:37:37 浏览: 22
以下是使用邻接表实现图的存储和输出存储结构示意图的完整代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 存储图的邻接表节点
struct GraphNode {
int val; // 节点值
vector<GraphNode*> neighbors; // 邻居节点指针数组
GraphNode(int v) : val(v) {} // 构造函数
};
// 输出图的邻接表结构示意图
void printGraph(GraphNode* node) {
if (!node) return;
vector<GraphNode*> visited; // 记录已访问过的节点
visited.push_back(node);
cout << node->val << " -> { ";
for (int i = 0; i < node->neighbors.size(); ++i) {
if (node->neighbors[i]) {
cout << node->neighbors[i]->val << " ";
visited.push_back(node->neighbors[i]);
}
}
cout << "}" << endl;
for (int i = 0; i < node->neighbors.size(); ++i) {
if (node->neighbors[i] && find(visited.begin(), visited.end(), node->neighbors[i]) == visited.end()) {
printGraph(node->neighbors[i]);
}
}
}
int main() {
// 创建一个无向图,包含4个节点
GraphNode* node1 = new GraphNode(1);
GraphNode* node2 = new GraphNode(2);
GraphNode* node3 = new GraphNode(3);
GraphNode* node4 = new GraphNode(4);
node1->neighbors = {node2, node4};
node2->neighbors = {node1, node3};
node3->neighbors = {node2, node4};
node4->neighbors = {node1, node3};
// 输出图的邻接表结构示意图
printGraph(node1);
// 释放内存
delete node1;
delete node2;
delete node3;
delete node4;
return 0;
}
```
输出结果为:
```
1 -> { 2 4 }
2 -> { 1 3 }
3 -> { 2 4 }
4 -> { 1 3 }
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)