利用关系的矩阵表示,可以通过Warshall算法计算有限集合上的二元关系的传递闭包。
main() { int A[4][4]={{1,1,0,0},{1,0,0,0},{0,1,0,0},{0,0,0,0}}; int i,j,k; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(A[j][i]==1) for(k=0;k<4;k++) A[j][k]=A[j][k]||A[i][k]; } for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%d ",A[j][i]); printf("\n"); } }