CEdge::CEdge() {

	int i;

	num = CalcEdges(NUM_TOWNS);

	list = new Edge[num];

	srand(time(NULL));
	int limit = MAX_DISTANCE; 
	
	int t1,t1prev;
	int t2,t2prev;

	t1 = t1prev = 0;
	t2 = t2prev = 1;

	for (i=0;i<num;i++) {

		list[i].town1 = t1;
		list[i].town2 = t2;

		list[i].distance = rand()%limit;
		
		//update t1,t2
		if (t2 == NUM_TOWNS-1) {
			t2prev++;
			t2 = t2prev;
			t1++;
		}	
		else
			t2++;
	}

}
TwoModeEdges::TwoModeEdges(InputTable *input) 
    : mainTable(input) 
{
    namesTrans = mainTable->GetRowNames();
    header = mainTable->GetHeader();
    rowData = mainTable->GetRowData();
    intervalTrans = CalcIntervals();
    edges = CalcEdges();
}
Exemplo n.º 3
0
EdgeFinder::EdgeFinder(MatCollection *collection, std::string userType, std::string agent, bool userSlide)
    : sourceCollection(collection), networkType(userType), ego(agent), slide(userSlide)
{
    namesTrans = sourceCollection->GetCollRows();
    intervalTrans = CalcIntervals(false);
    attributeInterval = CalcIntervals(true);
    edges = CalcEdges(ego);
    slide = sourceCollection->IsSlide();
}
int CEdge::CalcEdges(int n) {
	
	int edges;

	if (n == 2)
		return 1;
	else 
		edges =	CalcEdges(n-1) + n-1;
		return edges;

}