January 11th, 2005

  • evan


The algorithm is just this:
void output_order(userid root) {
  queue<userid> roots;
  while (!roots.empty()) {
    const userid u = roots.front();
    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)

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.