evan_tech

Previous Entry Share Next Entry
12:13 am, 11 Jan 05

anticlimactic

The algorithm is just this:
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.