文档介绍:《数据结构与算法》实验报告需求分析问题描述:编制一个能演示执行集合的并、交和差运算的程序基本要求:集合元素限定为小写字母[’a’…’z’];演示程序以用户和计算机对话方式执行。集合的输入形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序运用时自动过滤去,输出的运算结果中将不含重复字符和非法字符。计算机终端中显示提示信息之后,由用户自行选择下一步命令,相应输入数据和运算结果在其后显示。数据测试:(1)Set1=”magazine”,Set2=’paper”,Set1∪Set2=”aegimnprz”,Set1∩Set2=”ae”,Set1-Set2=”gimnz”;(2)Set1=”012oper4a6tion89”,Set2=”errordata”,Set1∪Set2=”adeinoprt”,Set1∩Set2=”aeort”,Set1-Set2=”inp”.{ char*elem; intsize; intlength;}set;2基本操作:setInitSet(sets);//初始化集合setInput(sets);//向集合中输入元素setInsertSet(sets,chare);//向集合中插入元素setDelateSet(sets,intn);//从集合中删除元素voiddisplay(sets);//显示集合setSetMix(setset1,setset2,setset3);//求集合的交集setcheck(sets);//检查集合中是否有数字或者重复字母setSort(sets);//对集合中的元素进行排序详细设计头文件#include<>#include<>#include<>定义#defineMAX_SIZE20(顺序表的初始大小)#defineADD_SIZE10(顺序表的递增大小)结构类型typedefstructSET{ char*elem; intsize; intlength;}set;(sets){ =(char*)malloc(MAX_SIZE*sizeof(char)); =MAX_SIZE; =0; returns;}(sets){ char*newbase; gets(); +=strlen(); if(<=){ newbase=(char*)realloc(,(+ADD_SIZE)*sizeof(char)); =newbase; +=ADD_SIZE; } returns;}(sets,chare){ []=e; [+1]='\0'; ++; returns;}(sets,intn){ inti; for(i=n;i<=;i++){ [i-1]=[i]; } --; returns;}(sets){ puts();}(sets){ inti,j,count; for(i=1;i<=;i++){ for(j=1;j<i;j++){ if([i-1]==[j-1]){ s=DelateSet(s,i); i--; break; } } } for(i=1;i<=;i++){ if([i-1]>'z'||[i-1]<'a'){ s=DelateSet(s,i); i--; } } returns;}(setset1,setset2,setset3){ inti; for(i=1;i<=;i++){ set3=InsertSet(set3,[i-1]); } for(i=1;i<=;i++){ set3=InsertSet(set3,[i-1]); } set3=check(set3); set3=Sort(set3); returnset3;}(setset1,setset2,