函数Node *difference(A,B)用于求两个集合之差C=A-B,即当且仅当e是A中的一个元素,但不是B中的元素时,e是C中的元素。集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之间按递增排列。执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示其链表根据元素之值按递增排列。函数append()用于在链表中添加节点。
[C函数]
typedef struct node{
int element;
struct node *link;
}Node;
Node *A,*B,*C;
Node *append(last,e)
Node *last;
int e;
{last->link=(Node *)malloc(sizeof(Node));
last->link->element=e;
return(last->link);
}
Node *difference(A,B)
Node *A,*B;
{ Node *c,*last;
C=last=(Node *)malloc(sizeof(Node));
while( (1) )
if(A->element<B->element){
last=append(last,A->element);
A=A->link:
}
else if( (2) ){
A:A->link;
B:B->link;
}
elSe
(3) ;
while( (4) ){
last=append(last,A->element);
A=A->link:
}
(5) ;
last=c;
c=c->link;
free(last);
return(c);
}
第1题:
下列说法错误的是?
A.无向图是连通图当且仅当它的可达矩阵的所有元素均为1。
B.有向图是强连通图,当且仅当它的可达矩阵的所有元素均为1。
C.有向图是单侧连通图,当且仅当可达矩阵的所有元素均为1。
D.有向图是弱连通图,当且仅当以邻接矩阵与邻接矩阵的转置的并集作为邻接矩阵求得的可达矩阵中的所有元素均为1。
第2题:
下列说法正确的是()
A.A与B为两个相等的集合,从A到B的函数是单射当且仅当它是一个满射。
B.函数的逆关系不一定都是函数。
C.只有双射函数是可逆的,其逆函数也是双射的。
D.函数的复合不一定是函数。
第3题:
下列各命题中真值为真的命题有
A.2+2=4当且仅当3是奇数
B.2+2=4当且仅当3不是奇数
C.2+2≠4当且仅当3是奇数
D.2+2≠4当且仅当3不是奇数
第4题:
下列各命题中真值为假的命题有?
A.2+2=4当且仅当3是奇数
B.2+2=4当且仅当3不是奇数
C.2+2≠4当且仅当3是奇数
D.2+2≠4当且仅当3不是奇数
第5题:
设X和Y为两个有穷集合,|X|=|Y|当且仅当存在从X到Y的双射。