数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx

上传人:wj 文档编号:13036459 上传时间:2022-10-03 格式:DOCX 页数:15 大小:80.89KB
下载 相关 举报
数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx_第1页
第1页 / 共15页
数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx_第2页
第2页 / 共15页
数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx_第3页
第3页 / 共15页
数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx_第4页
第4页 / 共15页
数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx

《数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

数据结构(C语言版)实验报告-集合的交并差Word格式文档下载.docx

intlength;

}set;

2基本操作:

setInitSet(sets);

//初始化集合

setInput(sets);

//向集合中输入元素

setInsertSet(sets,chare);

//向集合中插入元素

setDelateSet(sets,intn);

//从集合中删除元素

voiddisplay(sets);

//显示集合

setSetMix(setset1,setset2,setset3);

//求集合的交集

setcheck(sets);

//检查集合中是否有数字或者重复字母

setSort(sets);

//对集合中的元素进行排序

三、详细设计

1.头文件

#include<

stdio.h>

stdlib.h>

string.h>

2.定义

#defineMAX_SIZE20(顺序表的初始大小)

#defineADD_SIZE10(顺序表的递增大小)

3.结构类型

typedefstructSET{

char*elem;

intsize;

intlength;

4.初始化集合

setInitSet(sets){

s.elem=(char*)malloc(MAX_SIZE*sizeof(char));

s.size=MAX_SIZE;

s.length=0;

returns;

}

5.向集合中输入元素

setInput(sets){

char*newbase;

gets(s.elem);

s.length+=strlen(s.elem);

if(s.size<

=s.length){

newbase=(char*)realloc(s.elem,(s.size+ADD_SIZE)*sizeof(char));

s.elem=newbase;

s.size+=ADD_SIZE;

}

6.向集合中插入元素

setInsertSet(sets,chare){

s.elem[s.length]=e;

s.elem[s.length+1]='

\0'

;

s.length++;

7.从集合中删除元素

setDelateSet(sets,intn){

inti;

for(i=n;

i<

=s.length;

i++){

s.elem[i-1]=s.elem[i];

s.length--;

8.显示集合

voiddisplay(sets){

puts(s.elem);

}

9.检查集合中是否有数字或者重复字母

setcheck(sets){

inti,j,count;

for(i=1;

for(j=1;

j<

i;

j++){

if(s.elem[i-1]==s.elem[j-1]){

s=DelateSet(s,i);

i--;

break;

}

}

if(s.elem[i-1]>

'

z'

||s.elem[i-1]<

a'

){

s=DelateSet(s,i);

i--;

10.求集合的并集

setSetMix(setset1,setset2,setset3){

=set1.length;

set3=InsertSet(set3,set1.elem[i-1]);

=set2.length;

set3=InsertSet(set3,set2.elem[i-1]);

set3=check(set3);

set3=Sort(set3);

returnset3;

11.求集合的交集

setSetSame(setset1,setset2,setset3){

inti,j;

set2.length;

if(set1.elem[i-1]==set2.elem[j-1]){

set3=InsertSet(set3,set1.elem[i-1]);

12.求集合的差

setSetReduce(setset1,setset2,setset3){

=set3.length;

if(set3.elem[i-1]==set2.elem[j-1]){

set3=DelateSet(set3,i);

setSort(sets){

chartemp;

for(i=0;

s.length-1;

for(j=0;

s.length-i-1;

if(s.elem[j]>

s.elem[j+1]){

temp=s.elem[j];

s.elem[j]=s.elem[j+1];

s.elem[j+1]=temp;

13.主程序

main(){

setset1,set2,set3;

set1=InitSet(set1);

printf("

输入第一个集合:

"

);

set1=Input(set1);

set2=InitSet(set2);

输入第二个集合:

set2=Input(set2);

set3=InitSet(set3);

选择要进行的操作:

1、求交集2、求并集3、求集合的差:

scanf("

%d"

&

i);

if(i==1){

set3=SetSame(set1,set2,set3);

set3=check(set3);

set3=Sort(set3);

printf("

交集为:

display(set3);

}

elseif(i==2){

并集为:

set3=SetMix(set1,set2,set3);

elseif(i==3){

集合的差:

set3=SetReduce(set1,set2,set3);

else

输入错误"

return0;

四、调试分析

1.本程序的模块划分比较合理,且尽可能的将指针的操作封装在结点和链表的两个模块中,致使集合模块的调试比较成功。

2.将数据存入数组再转入链表,可以忽略输入集合的长度,设计更加巧妙,便于用户使用。

3.本实习作业采用数据抽象的程序设计方法,将程序划分为三个层次:

元素结点、有序链表、主控模块,使得设计思路清晰,实现时调试顺利,各模块具有较好的可重复性,确实得到了一次良好的程序设计训练。

五、用户守则

1.可执行文件为:

a.exe

2.为了界面更加友好特将背景颜色设计为黑色,字体为白色。

3.进入演示程序后即显示文本形式的用户界面,再按提示一步步完成:

六、测试结果

测试数据

(1)

1.求交集

2.求并集

3.求集合的差

测试数据

(2)

1.交集

2.并集

3.差

七、附录(源代码)

#include<

#defineMAX_SIZE20

#defineADD_SIZE10

setDelateSet(se

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1