12:13 am, 11 Jan 05
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.
I would say the most valuable thing i learned in studying OT was just how much data you can have, yet still not be able to tell for sure what the fuck was going on. In that respect, the class was quite instructive.