不好意思问一声,谁有serve使用攻略/教程?# Money - 海外理财
l*b
1 楼
记得前几天有大侠贴过一个的,找不到了
被面到了,讲完思路画了下流程,code写了一半时间到了,一直很糊涂该怎么写图的数
据结构。补一个code吧
#include
#include
#include
#include
using namespace std;
typedef unordered_map > Graph;
vector topologicalSort(Graph &gr) { // destructive
vector sorted;
queue degree_zero;
while(!gr.empty()) {
for(Graph::iterator i = gr.begin(), j = i; i != gr.end(); i = j) {
j++;
if(i->second.empty()) {
degree_zero.push(i->first);
gr.erase(i);
}
}
while(!degree_zero.empty()) {
int node = degree_zero.front();
degree_zero.pop();
sorted.push_back(node);
for(Graph::iterator i = gr.begin(); i != gr.end(); i++)
i->second.erase(node);
}
}
return sorted;
}
int main() {
Graph G;
G[0].insert(1);
G[0].insert(2);
G[1].insert(2);
G[2].empty();
G[5].insert(4);
G[1].insert(5);
G[4].empty();
vector sorted = topologicalSort(G);
for(int i = 0; i < sorted.size(); i++)
cout << sorted[i] << endl;
return 0;
}
被面到了,讲完思路画了下流程,code写了一半时间到了,一直很糊涂该怎么写图的数
据结构。补一个code吧
#include
#include
#include
#include
using namespace std;
typedef unordered_map
vector
vector
queue
while(!gr.empty()) {
for(Graph::iterator i = gr.begin(), j = i; i != gr.end(); i = j) {
j++;
if(i->second.empty()) {
degree_zero.push(i->first);
gr.erase(i);
}
}
while(!degree_zero.empty()) {
int node = degree_zero.front();
degree_zero.pop();
sorted.push_back(node);
for(Graph::iterator i = gr.begin(); i != gr.end(); i++)
i->second.erase(node);
}
}
return sorted;
}
int main() {
Graph G;
G[0].insert(1);
G[0].insert(2);
G[1].insert(2);
G[2].empty();
G[5].insert(4);
G[1].insert(5);
G[4].empty();
vector
for(int i = 0; i < sorted.size(); i++)
cout << sorted[i] << endl;
return 0;
}