姓名:张超。
学号:1005802116
班级:信管1001
时间:2024年12月28日。
我的设计题目为:
用有序顺序表完成集合与集合的交集,差集,并集,包含于之间的运算以及元素与集合的判断关系。
我的思路是:
既然是用有序顺序表实现集合之间关系,最简单的就是用数组来实现,有序就用插入排序来实现,然后把交集,差集,并集,包含,属于的函数实现,在主函数中调用函数来完成任务。第一步设计一个函数实现输入的元素排序,用for循环实现,排序就输入一个元素来与之前元素比较,有序的插入到数组中,并用for循环依次显示出来,然后就是集合的运算实现,1对于属于关系,在一个集合中依次查找与给定的元素作比较,找到就显示true,否则false。2对于包含关系,在一个数组中每个元素都属于另个集合是否为真,来判定,其中要调用属于的函数。
3对于交集,把一个数组属于另一个数组的元素存在一个数组集合中,即交集,也要调用属于的函数,4对于并集,因为有序,所以依次比较两个数组的元素,把小的插入预定的数组中,并计数,两个数组根据情况适当移位,以便下次比较不重不漏,5对于差集,把一个数组与另个数组不同的元素插入预定的数组中,即减去两个集合的交集,剩余的就是差集,其中也要调用属于函数!最后在主函数中设置三个数组表示集合,调用每个函数,实现各个功能!
题目:第16题-用有序顺序表实现集合的各种运算。
**如下:#include <>
/void insert_sort(int &a int b);
void input_sort(int *int_number,int &count)//插入并排序。
printf("元素的个数");输入a,b集合元素个数。
scanf("%d", count);
for(int i = 0; i < count; i++)依次输入每个集合元素。
从小到大排序。
else if(current > int_number[i-1] |current ==int_number[i-1])else
for(int k=0; k
printf("");
/判断属于。
bool isamember(int test, int* numbers, int count)
for(int i=0; i < count; i++)依次查找相同的元素。
return false;
/判断集合a2包含于a1
bool issubset(int *a1, int count1, int *a2, int count2)
bool result = true;
if(count2 < count1 ||count1 ==count2)//a2元素个数少于等于a1
elsereturn result;
/求两个集合的并(结果保存到result中从小到大)
void union(int* a1, int count1, int* a2, int count2, int* result, int &rcount)//依次比较a1,a2的元素大小并赋值计数。
int i1=0, i2=0;
rcount = 0;//初始化。
for(int i=0; count1>0 &&count2>0; )
else if(a1[i1] else if(a1[i1] =a2[i2]) while(count1 !=0 )/比较完之后剩下a1的元素处理。 while(count2 !=0)//剩下a2的元素处理。 /交集。void intersection(int * a1, int count1, int * a2, int count2, int* result, int &rcount) rcount = 0; for(int i=0; i /差集。void complement(int* a1, int count1, int* a2, int count2, int * result, int &rcount) rcount = 0; for(int i=0; i int main()/依次调用各个函数,实现每个算法。 int i; printf("数据结构课程设计姓名:张超学号:100502116题目:第16题-有序顺序表"); printf("请输入集合a"); int test1[10];/定义一个数组表示集合a int c1 = 0; input_sort(test1, c1);/排序。 printf("请输入集合b"); int test2[10];/定义一个数组表示集合b int c2 = 0; input_sort(test2, c2);/排序 int r[20];/定义运算之后的集合。 int count = 0; printf("集合a-b差集"); complement(test1, c1, test2, c2, r, count);/调用差集。 for(i=0; i printf("两个集合的并集"); union(test1, c1, test2, c2, r, count);/调用并集 for(i=0; i printf("两个集合的交集"); intersection(test1, c1, test2, c2, r, count);/调用交集 for(i=0; i printf("集合b包含于a吗?:"); if(issubset(test1, c1, test2, c2))/调用判断包含于。 printf("是"); else printf("不是"); printf("请输入一个元素:") scanf("%d", r); if(isamember(*r,test1,c1))/调用判断属于。 printf("属于集合a"); else printf("不属于集合a"); printf("谢谢使用"); 东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问... 设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供... 河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...数据结构课程设计报告
数据结构课程设计报告
数据结构课程设计报告