c++实现网络拓扑图完整代码
时间: 2024-10-15 22:03:52 浏览: 17
在C++中实现网络拓扑图通常涉及图形数据结构,如邻接表或邻接矩阵,以及一些基本的操作,比如添加节点、边等。以下是一个简单的使用STL(Standard Template Library)实现无向图的邻接列表示例:
```cpp
#include <iostream>
#include <list>
#include <string>
// 定义节点类 Node
class Node {
public:
int id;
std::list<int> neighbors; // 邻居列表
Node(int _id) : id(_id) {}
};
// 定义图类 Graph
class Graph {
private:
std::vector<Node*> nodes;
public:
void addNode(int id) {
nodes.push_back(new Node(id));
}
void addEdge(int from, int to) {
nodes[from]->neighbors.push_back(to);
nodes[to]->neighbors.push_back(from); // 如果图是非循环的,则不需要这个反向操作
}
void printTopology() {
for (const auto& node : nodes) {
std::cout << "Node " << node->id << ": ";
for (const auto& neighbor : node->neighbors)
std::cout << neighbor << " ";
std::cout << "\n";
}
}
~Graph() { // 析构函数释放动态内存
for (auto node : nodes)
delete node;
}
};
int main() {
Graph g;
g.addNode(1);
g.addNode(2);
g.addNode(3);
g.addEdge(1, 2);
g.addEdge(2, 3);
g.printTopology();
return 0;
}
阅读全文