void compactEdgeArray()
{
	unsigned int i;
	unsigned int validCounter = 0;
	unsigned int bal_ed;
	printf ( "there're %d edges\n", num_ed );

	for ( i = 1; i <= num_ed; i++ )
	{
		if ( edge_array[i].deleted )
			{ continue; }

		validCounter++;

		if ( i == validCounter )
			{ continue; }

		bal_ed = getTwinEdge ( i );
		edgeMove ( i, validCounter );

		if ( bal_ed != i )
		{
			i++;
			validCounter++;
		}
	}

	num_ed = validCounter;
	printf ( "after compacting %d edges left\n", num_ed );
}
Exemple #2
0
/*************************************************
Function:
    compactEdgeArray
Description:
    Compacts the edge array by removing deleted edges.
Input:
    None.
Output:
    None.
Return:
    None.
*************************************************/
void compactEdgeArray ()
{
	unsigned int i;
	unsigned int validCounter = 0;
	unsigned int bal_ed;
	fprintf ( stderr, "Before compacting, %d edge(s) existed.\n", num_ed );

	for ( i = 1; i <= num_ed; i++ )
	{
		if ( edge_array[i].deleted )
		{
			continue;
		}

		validCounter++;

		if ( i == validCounter )
		{
			continue;
		}

		bal_ed = getTwinEdge ( i );
		edgeMove ( i, validCounter );

		if ( bal_ed != i )
		{
			i++;
			validCounter++;
		}
	}

	num_ed = validCounter;
	fprintf ( stderr, "After compacting, %d edge(s) left.\n", num_ed );
}