首页 > 代码库 > 克隆一个图
克隆一个图
克隆一个图结构。
1 struct Node{2 vector<Node*> neighbors;3 };
代码如下:
1 typedef unordered_map<Node*, Node*> Map; 2 3 Node* cloneGraph(Node* graph) 4 { 5 if (!graph) 6 return NULL; 7 8 Map map; 9 Node* graphCopy = new Node();10 map[graph] = graphCopy;11 12 queue<Node*> q;13 q.push(graph);14 while (!q.empty()) {15 Node* node = q.front();16 q.pop();17 int n = node->neighbors.size();18 for (int i = 0; i < n; i++) {19 Node* neighbor = node->neighbors[i];20 if (map.find(neighbor) == map.end()) {21 Node* copy = new Node();22 map[neighbor] = copy;23 map[node]->neighbors.push_back(copy);24 q.push(neighbor);25 } else {26 map[node]->neighbors.push_back(map[neighbor]);27 }28 }29 return graphCopy;30 }
克隆一个图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。