#include "StandardRanker.h" #include StandardRanker::StandardRanker(void) { } StandardRanker::~StandardRanker(void) { } /* Give each WordItem a rank ** rank = (# Items which it depends on or depend on it)^2 ** + # of items which depend on those items */ void StandardRanker::Rank(DependencyStructure &Article) { cout << endl << "Ranking (Standard) ... "; vector rankings; rankings.resize(Article.Verticies.size()); // How many items depend on it? for (int d = 0; d < Article.Edges.size(); d++) { Article.Verticies[Article.Edges[d].parent].ranking++; Article.Verticies[Article.Edges[d].child].ranking++; } // How many items depend on those items? for (int w = 0; w < Article.Verticies.size(); w++) { for (int d = 0; d < Article.Edges.size(); d++) { if (Article.Edges[d].parent == w) rankings[w] += Article.Verticies[Article.Edges[d].child].ranking; if (Article.Edges[d].child == w) rankings[w] += Article.Verticies[Article.Edges[d].parent].ranking; } } // Square the first, add the second for (int w = 0; w < Article.Verticies.size(); w++) { Article.Verticies[w].ranking = Article.Verticies[w].ranking*Article.Verticies[w].ranking+rankings[w]; } }