Definition at line 31 of file main.cpp.
◆ cloneGraph()
| Node * Solution::cloneGraph |
( |
Node * |
node | ) |
|
|
inline |
Definition at line 87 of file main.cpp.
88 {
89 if (!node)
90 return NULL;
91
92 unordered_map<Node*, Node*> node_map;
93 queue<Node*> node_queue;
94
95
97
98 node_map[node] = new_node;
99 node_queue.push(node);
100
101 while (!node_queue.empty())
102 {
103 Node* current = node_queue.front();
104 node_queue.pop();
105
107 for (int i = 0; i < (int)v.size(); ++i)
108 {
109 if (node_map[v[i]] == NULL)
110 {
111 new_node =
new Node(v[i]->val);
113 node_map[v[i]] = new_node;
114 node_queue.push(v[i]);
115 }
116 node_map[current]->
neighbors.push_back(node_map[v[i]]);
117 }
118 }
119 return node_map[node];
120 }
vector< Node * > neighbors
References Node::neighbors, and Node::val.
Referenced by main().
◆ delete_graph()
| void Solution::delete_graph |
( |
Node * |
node | ) |
|
|
inline |
Definition at line 34 of file main.cpp.
35 {
36 if (!node)
37 return;
38 set<Node*> visited;
39 queue<Node*> node_queue;
40 node_queue.push(node);
41 visited.insert(node);
42 while (!node_queue.empty())
43 {
44 Node* current = node_queue.front();
45 node_queue.pop();
46
47 for (
Node* neighbor: current->neighbors)
48 {
49 if (neighbor && visited.find(neighbor) == visited.end())
50 {
51 node_queue.push(neighbor);
52 visited.insert(neighbor);
53 }
54 }
55 delete current;
56 }
57 }
References Node::neighbors.
Referenced by main().
◆ print_graph()
| void Solution::print_graph |
( |
Node * |
node | ) |
|
|
inline |
Prints graph nodes of a connected node using BFS.
Definition at line 62 of file main.cpp.
63 {
64 if (!node)
65 return;
66 set<Node*> visited;
67 queue<Node*> node_queue;
68 node_queue.push(node);
69 visited.insert(node);
70 while (!node_queue.empty())
71 {
72 Node* current = node_queue.front();
73 node_queue.pop();
74
75 cout <<
"Node " << current->
val <<
"; address: " << current << endl;
76 for (
Node* neighbor: current->neighbors)
77 {
78 if (neighbor && visited.find(neighbor) == visited.end())
79 {
80 node_queue.push(neighbor);
81 visited.insert(neighbor);
82 }
83 }
84 }
85 }
References Node::neighbors, and Node::val.
Referenced by main().
The documentation for this class was generated from the following file: