.
定义链表,创建链表,输出链表。利用链表的来存储集合。利用三个函数分别实现课程要求程序实现的求并、求交和差三中运算。现分述如下:
A)并运算函数
该函数采取了用新集合存储两集合并后的新集合,利用一个for循环来消除新集合中相同的元素,使其在屏幕上只显示一次。
B)交运算函数
该函数用于实现集合的并运算,利用for嵌套实现两链表中数据的比较,输出两链表中相同的元素。
C)差函数
该函数用于实现集合的差运算,利用链表中的数据域进行判断。输出不同于被减集合中不存在的元素。
四 程序流程图
流程图:
开始
.
定义链表
创建链表 输入数据 .
输入数据 求两集合的并集
求两集合的交集
输入数据 求两集合的差集
五 程序的实现
改程序的实现步骤是定义链表,创建链表,输出链表。利用链表的来存储集合。利用三个函数分别实现课程要求程序实现的求并、求交和差三中运算。现分述如下:
5.1 主函数
void bangzhu(){
printf(\
printf(\求集合的交并差 *\
.
.
printf(\ }
void main() /* 主函数 */ {
struct set *p,*q,*r;
int m,n,node;
bangzhu();
for(;;) { do{
printf(\请输入您要选择操作的代码:\\n\
printf(\:求两集合的并A∪B\\n\
.
.
printf(\:求两集合的交A∩B\\n\
printf(\:求两集合的差A-B\\n\
printf(\:退出该程序\\n\
scanf(\
if(node==0) exit(1);
printf(\请输入集合A中元素的个数:*/\\n\
scanf(\
createlist_p(p,m); /* 调用链表生成函数生成A链表 */
printf(\请输入集合B中元素的个数:*/\\n\
scanf(\调用链表生成函数生成B链表 */
} while(node<0||node>3);
.
.
createlist_p(q,n);
printf(\集合A中元素为:\
printlist_p(p); /* 调用集合输出函数输出集合A */
printf(\集合B中元素为:\
printlist_p(q); /* 调用集合输出函数输出集合A */
while(node<0||node>3);
switch(node)
{
case 1: Addset( p,q,r);printf(\∪B:\\n\
case 2: Subset( p,q,r);printf(\∩B:\\n\
case 3: Intset(p,q,r); printf(\
}
.