1、广工离散anyview上机1、判断元素与集和的关系Boolean IsInSet(SetElem elem, pSet pA) /Add your code here SetElem *pAElems; pAElems=outToBuffer(pA); while(*pAElems!=n) if(elem=*pAElems) return true; else pAElems+; return false;2、集和的并运算pSet SetUnion(pSet pA, pSet pB) pSet pS; pS=createNullSet(); SetElem *pBElems; SetElem
2、*pAElems; pBElems=outToBuffer(pB); pAElems=outToBuffer(pA); while(*pAElems!=n) directInsertSetElem(pS,*pAElems); pAElems+; while(*pBElems!=n) if(!isInSet(pA,*pBElems) directInsertSetElem(pS,*pBElems); +pBElems; return pS;3、集和的交集pSet SetIntersection(pSet pA, pSet pB) pSet pS; pS=createNullSet(); SetE
3、lem *pBElems; pBElems=outToBuffer(pB); while(*pBElems!=n) if(isInSet(pA,*pBElems) directInsertSetElem(pS,*pBElems); +pBElems; return pS;4、集和的差运算pSet SetSubtraction(pSet pA, pSet pB) pSet pS; pS=createNullSet(); SetElem *pAElems; pAElems=outToBuffer(pA); while(*pAElems!=n) if(!isInSet(pB,*pAElems) di
4、rectInsertSetElem(pS,*pAElems); pAElems+; return pS;6、集和的对称差运算pSet SetSysmmetricDifference(pSet pA, pSet pB) /Add your code here pSet pS; pS=createNullSet(); SetElem *pAElems; SetElem *pBElems; pAElems=outToBuffer(pA); pBElems=outToBuffer(pB); while(*pAElems!=n) if(!isInSet(pB,*pAElems) directInsert
5、SetElem(pS,*pAElems); pAElems+; while(*pBElems!=n) if(!isInSet(pA,*pBElems) directInsertSetElem(pS,*pBElems); pBElems+; return pS; 7、两个集和的包含关系SetRelationshipStatus SetRelationship(pSet pA, pSet pB) /Add your code here pSet pS; pS=createNullSet(); SetElem *pAElems; SetElem *pBElems; pAElems=outToBuff
6、er(pA); pBElems=outToBuffer(pB); pS=pB; if(isNullSet(pA)&!isNullSet(pB) return REALINCLUDED; if(!isNullSet(pA)&isNullSet(pB) return REALINCLUDING; if(isNullSet(pA)&isNullSet(pB) return EQUAL; if(!isNullSet(pA)&!isNullSet(pB) while(*pAElems!=n) if(isInSet(pS,*pAElems) pAElems+; else while(*pBElems!=n
7、) if(isInSet(pA,*pBElems) pBElems+; else return NOT_INCLUSIVE; if(*pBElems=n) return REALINCLUDING; if(*pAElems=n) while(*pBElems!=n) if(isInSet(pA,*pBElems) pBElems+; else return REALINCLUDED; if(*pBElems=n) return EQUAL; 8、求集和的幂集pSet miji(pSet pB,pSet pC) SetElem *pBElems; SetElem *pCElems; pSet p
8、S; pS=createNullSet(); pBElems=outToBuffer(pB); pCElems=outToBuffer(pC); while(*pBElems!=n) directInsertSetElem(pS,*pBElems); pBElems+; while(*pCElems!=n) if(!isInSet(pB,*pCElems) directInsertSetElem(pS,*pCElems); +pCElems; return pS; pFamilyOfSet PowerSet(pSet pA) /Add your code here int i; pSet pI
9、=createNullSet(); pFamilyOfSet pF=createNullFamilyOfSet(); SetElem *pBElems=outToBuffer(pA); insertToFamilyOfSet(pF,pI); if(isNullSet(pA)=FALSE) while(*pBElems!=n) pSet pK=createNullSet(); directInsertSetElem(pK,*pBElems); pSet *pS=outFamilyOfSetToBuffer(pF); for(i=0;*(pS+i)!=NULL;i+) insertToFamily
10、OfSet(pF,miji(pK,*(pS+i); pBElems+; return pF; 递归法求幂集voidmyFunction(longk,SetElem*pAElems,pFamilyOfSetpFamSetA,pSetpB)SetElem*a=pAElems;longi=k;pB=createNullSet();while(*a!=n)if(i%2=1)/表示二进制最后一位是1directInsertSetElem(pB,*a);a+;i=1;insertToFamilyOfSet(pFamSetA,pB);/把集和加入到集族k-;if(k=0)/2n-1个子集myFunction
11、(k,pAElems,pFamSetA,pB);pFamilyOfSetPowerSet(pSetpA)/AddyourcodeherepFamilyOfSetpFamSetA=createNullFamilyOfSet();longi,k=1;/设置循环变量SetElem*pAElems=outToBuffer(pA);pSetpB=createNullSet();for(i=0;*(pAElems+i)!=n;)i+;k=i;myFunction(k,pAElems,pFamSetA,pB);returnpFamSetA; 卡氏积运算pCartersianSet CartesianProd
12、uct(pOriginalSet pA, pOriginalSet pB) pCartersianSet pC=createNullCartersianSet(); for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA) for(resetOriginalSet(pB);!isEndOfOriginalSet(pB);nextOriginalSetPos(pB) OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOrigi
13、nalSetElem(pA),getCurrentOriginalSetElem(pB); return pC; 集和A到B的二元关系boolean isBinaryRelation(pOriginalSet pA, pOriginalSet pB, pCartersianSet pC) pCartersianSet pD=createNullCartersianSet(); for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA) for(resetOriginalSet(pB);!isEndOfOrigi
14、nalSet(pB);nextOriginalSetPos(pB) OrderedCoupleInsertToCartersianSet(pD,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pB); for(getCurrentCartersianSetElem(pC);!isEndOfCartersianSet(pC);nextCartersianSetPos(pC) while(!isEndOfCartersianSet(pD) if(getCurrentCartersianSetEl
15、em(pD)=getCurrentCartersianSetElem(pC) nextCartersianSetPos(pD); else return false; if(isEndOfCartersianSet(pC) return true; 集和A的恒等关系pCartersianSet IdentityRelation(pOriginalSet pSet) pCartersianSet pC=createNullCartersianSet(); for(resetOriginalSet(pSet);!isEndOfOriginalSet(pSet);nextOriginalSetPos
16、(pSet) OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pSet),getCurrentOriginalSetElem(pSet); return pC;两个卡氏积的复合运算pCartersianSet CompositeOperation(pCartersianSet pA, pCartersianSet pB) pCartersianSet pC=createNullCartersianSet(); for(resetCartersianSet(pA);!isEnd
17、OfCartersianSet(pA);nextCartersianSetPos(pA) for(resetCartersianSet(pB);!isEndOfCartersianSet(pB);nextCartersianSetPos(pB) if(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)=getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pB); OrderedCoupleInsertToCartersianSet(pC,createOrderedC
18、ouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB); return pC;求一个关系的逆运算pCartersianSet InverseOperation(pCartersianSet pA) pCartersianSet pC=createNullCartersianSet(); for(resetCartersianSet(pA);!isEndOfCartersianSet(pA);next
19、CartersianSetPos(pA) OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA); return pC;求集和A二元关系上的逆运算pCartersianSet PowOperation(pCartersianSet pA, pCartersianSet pBinaryRelatio
20、nR, int n) pCartersianSet pC=createNullCartersianSet(); pC=copyCartersianSet(pBinaryRelationR); if(n=0) for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);nextOriginalSetPos(pA) OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA); if(n=
21、1) return pC; pCartersianSet pD=createNullCartersianSet(); int i; for(i=2;i=n;i+) pD=copyCartersianSet(pC); pC=compositeOperation(pD,pBinaryRelationR); return pC;判断集和A上二元关系的自反性boolean IsReflexivity(pOriginalSet pA, pCartersianSet pBinaryRelationR) pCartersianSet pC=createNullCartersianSet(); pC=copy
22、CartersianSet(pBinaryRelationR); if(isNullOriginalSet(pA) return true; else for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);) if(isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA) nextOriginalSetPos(pA); else break; if(isEndOfOriginalSet(pA) return
23、true; else return false;判断集和A上二元关系的反自反性boolean IsAntiReflexivity(pOriginalSet pA, pCartersianSet pBinaryRelationR) pCartersianSet pC=createNullCartersianSet(); pC=copyCartersianSet(pBinaryRelationR); if(isNullOriginalSet(pA) return true; else for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);) if(!is
24、InCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA) nextOriginalSetPos(pA); else break; if(isEndOfOriginalSet(pA) return true; else return false;判断集和A上二元关系的反自反性或自反性Reflexivity_Type DetermineReflexivity(pOriginalSet pA, pCartersianSet pBinaryRelationR) p
25、CartersianSet pC=createNullCartersianSet(); pC=copyCartersianSet(pBinaryRelationR); if(isNullOriginalSet(pA) return REFLEXIVITY_AND_ANTI_REFLEXIVITY; else for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);) if(isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSe
26、tElem(pA) nextOriginalSetPos(pA); else break; if(isEndOfOriginalSet(pA) return REFLEXIVITY; else for(resetOriginalSet(pA);!isEndOfOriginalSet(pA);) if(!isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA) nextOriginalSetPos(pA); else break; if(isEndOfO
27、riginalSet(pA) return ANTI_REFLEXIVITY; else return NOT_REFLEXIVITY_AND_NOT_ANTI_REFLEXIVITY; 判断集和A上二元关系的对称性或反对称性Symmetry_Type DetermineSymmetry(pCartersianSet pBinaryRelationR) pCartersianSet pC=createNullCartersianSet(); pC=copyCartersianSet(pBinaryRelationR); for(resetCartersianSet(pC);!isEndOfCa
28、rtersianSet(pC);) if(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pC)!=getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pC) if(isInCartersianSet(pC,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pC),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pC) nextCartersianSetPos(pC); else return ANTI_SYMMETRY; if(isEndOfOriginalSet(pC) return SYMMETRY; else nextCartersianSetPos(pC); if(isEndOfOriginalSet(pC) return SYMMETRY_AND_ANTI_SYMMETRY; else return NOT_SYMMETRY_AND_NOT_ANTI_SYMMETR
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1