#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
using namespace std;
bool func(char **M,int n)
{
int i;
for(i = 0;i < n;i++)
{
if(M[i][i] == '0')
return false;
}
return true;
}
bool symmertry(char **M,int n)
{
int i,j;
for(i = 0;i < n;i++)
for(j = 0;j < n;j++)
{
if(M[i][j] != M[j][i])
return false;
}
return true;
}
bool translate(char **M,int n)
{
int i,j,k;
bool flag;
flag = true;
for(i = 0;i<n&&flag;i++)
{
for(j = 0;j<n&&flag;j++)
{
if(M[i][j]=='1')
{
k = 0;
while(k<n)
{
if((M[i][k]=='1'&&M[k][j]=='1')||(M[k][i]=='1'&&M[k][j]=='1')||(M[i][k]=='1'&&M[j][k]=='1')||(M[k][i]=='1'&&M[k][j]=='1'))
{
break;
}
else
k++;
}
if(k==n)
{
flag = false;
}
}
}
}
if(i == n)
return true;
else
return false;
}
int main()
{
char **M;
int vexnum,i,j;
bool flag;
cout <<endl<<endl<<"请输入关系矩阵的vertexnum:";
cin >> vexnum;
M = new char *[vexnum];
for(i = 0;i < vexnum;i++)
{
M[i] = new char[vexnum];
}
cout << endl << endl << "请输入关系矩阵:" << endl << endl;
while(true)
{
flag = true;
for(i = 0;i < vexnum && flag;i++)
{
for(j = 0;j < vexnum;j++)
{
cin >> M[i][j];
if(M[i][j] != '0' && M[i][j] != '1')
{
cout << endl << "输入不正确,请重新输入!" << endl << endl;
flag = false;
break;
}
}
}
if(i == vexnum && j == vexnum)
break;
}
if(func(M,vexnum) && symmertry(M,vexnum))
{
cout << "R是对称关系!" << endl;
}
else
cout << "R不是对称关系!" << endl;
if(translate(M,vexnum))
cout<<"R是传递关系!"<<endl;
else
cout<<"R不是传递关系!"<<endl;
return 0;
}
Warshell算法判断传递包,包括自反包,对称包的函数
需积分: 10 159 浏览量
2008-12-17
15:34:42
上传
评论
收藏 860KB RAR 举报
shuilingergo
- 粉丝: 42
- 资源: 3
最新资源
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈