(relation_print, traverse, relation_transpose):

Check for END_NODE rather than looking at sign.
This commit is contained in:
Paul Eggert
2004-10-22 23:10:07 +00:00
parent f55ec70868
commit 0859e438eb

View File

@@ -35,7 +35,7 @@ relation_print (relation r, size_t size, FILE *out)
{ {
fprintf (out, "%3d: ", i); fprintf (out, "%3d: ", i);
if (r[i]) if (r[i])
for (j = 0; r[i][j] != -1; ++j) for (j = 0; r[i][j] != END_NODE; ++j)
fprintf (out, "%3d ", r[i][j]); fprintf (out, "%3d ", r[i][j]);
fputc ('\n', out); fputc ('\n', out);
} }
@@ -67,7 +67,7 @@ traverse (int i)
INDEX[i] = height = top; INDEX[i] = height = top;
if (R[i]) if (R[i])
for (j = 0; R[i][j] >= 0; ++j) for (j = 0; R[i][j] != END_NODE; ++j)
{ {
if (INDEX[R[i][j]] == 0) if (INDEX[R[i][j]] == 0)
traverse (R[i][j]); traverse (R[i][j]);
@@ -143,7 +143,7 @@ relation_transpose (relation *R_arg, int n)
/* Count. */ /* Count. */
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
if ((*R_arg)[i]) if ((*R_arg)[i])
for (j = 0; (*R_arg)[i][j] >= 0; ++j) for (j = 0; (*R_arg)[i][j] != END_NODE; ++j)
++nedges[(*R_arg)[i][j]]; ++nedges[(*R_arg)[i][j]];
/* Allocate. */ /* Allocate. */
@@ -151,7 +151,7 @@ relation_transpose (relation *R_arg, int n)
if (nedges[i] > 0) if (nedges[i] > 0)
{ {
relation_node *sp = CALLOC (sp, nedges[i] + 1); relation_node *sp = CALLOC (sp, nedges[i] + 1);
sp[nedges[i]] = -1; sp[nedges[i]] = END_NODE;
new_R[i] = sp; new_R[i] = sp;
end_R[i] = sp; end_R[i] = sp;
} }
@@ -159,7 +159,7 @@ relation_transpose (relation *R_arg, int n)
/* Store. */ /* Store. */
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
if ((*R_arg)[i]) if ((*R_arg)[i])
for (j = 0; (*R_arg)[i][j] >= 0; ++j) for (j = 0; (*R_arg)[i][j] != END_NODE; ++j)
{ {
*end_R[(*R_arg)[i][j]] = i; *end_R[(*R_arg)[i][j]] = i;
++end_R[(*R_arg)[i][j]]; ++end_R[(*R_arg)[i][j]];