
使用C语言完成自反、对称和传递闭包运算。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
自反、对称和传递闭包运算的实现,本文主要阐述了使用 C 语言实现自反闭包、对称闭包和传递闭包运算的具体方法与算法。通过实践性的实验以及编程操作,读者能够透彻掌握关系运算的核心原理,并理解其详细的实现流程。1. 自反闭包的构建自反闭包是关系运算中一个至关重要的概念,它定义为关系矩阵的主对角线元素全部被赋予值为 1。其具体实现方式如下所示: ```cvoid zifan(int s2[][100]) { for (i = 0; i < n; i++) { s2[i][i] = 1; } output(s2);}``` 2. 对称闭包的构建对称闭包则基于关系矩阵的转置矩阵。其实现逻辑如下: ```cvoid duichen(int s2[][100]) { int s1[100][100]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { s1[j][i] = s2[i][j]; } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { s2[i][j] = s2[i][j] + s1[i][j]; if (s2[i][j] > 1) { s2[i][j] = 1; } } } output(s2);}```3. 传递闭包的构建传递闭包是关系运算中进一步的概念,它指的是关系矩阵的传递性闭合子集。其具体实现步骤如下: ```cvoid chuandi1(int s2[][100]) { int m[100][100], a[100][100], k, h; int t[100][100]; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { a[i][j] = 0; t[i][j] = s2[i][j]; m[i][j] = s2[i][j]; } } for (h = 0; h < n; h++) { for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (m[i][j] == 1) { for (k = 0; k < n; k++) { if (s2[j][k] == 1) { a[i][k] = 1;} } } for (i = 0; i < n ; i++){for( j= = n ; j
全部评论 (0)


