anticlimactic
The algorithm is just this:
Getting to that place was about 10x more support code.
But more importantly, the results are crap-- I don't have enough of a picture to really get anything out of the LJ data. Oh well, it wasn't really a useful project anyway.
void output_order(userid root) {
queue<userid> roots;
roots.push(root);
while (!roots.empty()) {
const userid u = roots.front();
roots.pop();
const EdgeSet& oe = nodes[u].outedges;
printf("%s\n", usermap[u].c_str());
for (EdgeSet::const_iterator i = oe.begin();
i != oe.end(); i++) { // \n to fit on lj
if (--nodes[*i].indegree == 0)
roots.push(*i);
}
}
}Getting to that place was about 10x more support code.
But more importantly, the results are crap-- I don't have enough of a picture to really get anything out of the LJ data. Oh well, it wasn't really a useful project anyway.
