二元关系类{
成员变量:
指向存储在一维数组中的关系矩阵的指针p;
矩阵的阶数; //在构造函数中手动输入
成员函数:
√ 重载构造函数(无参数); //运行时手动输入参数进行初始化
√ showMatrix; //在屏幕上输出矩阵
√ 判断关系的特性 //自反,对称,传递
关系的逆;
√与或位运算;
关系的交并差补; //调用与或位运算
√关系的合成; //调用与或位运算(友元函数 * 运算符重载)
√关系的幂; //循环调用关系的合成函数,并根据P86定理4.3.6进行优化,即判断j次幂是否等于i次幂,等于则循环终止,根据前文推导出较大指数的结果
关系的自反闭包;
关系的对称闭包;
√关系的传递闭包; //P90 Warshall算法
};
打钩的必做,其它选做.
大概就是这样吧,之前做的面向过程版本,发现做的千疮百孔,所以还是使用类吧.
貌似给自己挖了个大坑啊,还要撸高数呀哪有时间搞这个...
update@13.11.25:
大坑终于终于填上了,基本把之前规划的必做部分完成了,自己也奇怪写了这么多,等我飞起来之后再回头看的时候,也许会感慨自己当年这么挫吧,写的这么拉杂又没效率,嘿嘿.
//BinaryRelation.h
#pragma once
#incl