实习报告集合的并、交和差运算.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习报告集合的并、交和差运算

一、需求分析 1.本演示程序中,集合的元素限制在小写字母‘a’-‘z’之间。集合的大小不限制,集合的输入形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序运用时自动过滤去,输出的运算结果中将不含重复字符和非法字符。 2.演示程序以用户和计算机对话的形式进行,即在计算机终端中显示提示信息之后,有用户自行选择下一步命令,相应输入数据和运算结果在其后显示。 3.程序的执行命令有:1)选择操作 2)任意键清屏 4.数据测试 (1) Set1=”magazine”, Set2=’paper”, Set1∪Set2=”aegimnprz”,Set1∩Set2=”ae”,Set1-Set2=”gimnz”; (2) Set1=”012oper4a6tion89”,Set2=”error data”, Set1∪Set2=”adeinoprt”,Set1∩Set2=”aeort”, Set1-Set2=”inp”. 二、概要设计 为实现上述功能,需要顺序表这个抽象数据类型。 1.顺序表抽象数据类型定义 ADT sqlist{ 数据对象:D={ai|ai∈Elemset,i=1,2,3,…n,n=0} 数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2, … n} 基本操作: InitList(l) 操作结果:构造一个空的顺序表l。 ListLength(l) 初始条件:顺序表l已存在。 操作结果:返回l中的元素个数。 ListInsert_Sq(L, i, e) 初始条件:顺序表l已存在。 操作结果:在l中第i个元素前面插入元素e。 CreatSqList(l, a[],n) 初始条件:顺序表l已存在。 操作结果:将数组a[n]每个元素赋给顺序表l。 GetElem(L, i, e) 初始条件:顺序表l已存在。 操作结果:返回l中第i个元素的值 LocateElem_Sq(L, e, Status (*compare)()) 初始条件:顺序表l已存在。 操作结果:依次遍历l中每个元素带入函数。 ListDelete(L,i, e) 初始条件:顺序表l已存在。 操作结果:删除顺序表中第i个元素。 Outputlist(L) 初始条件:顺序表l已存在。 操作结果:输出顺序表的每个元素值。 }ADT sqlist 三、详细设计 // 程序的头文件 #includestdio.h #includemalloc.h #includestdlib.h #includestring.h // 函数返回值 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define NULL 0 #define LIST_INIT_SIZE 100 //顺序表的初始大小 #define LISTINCREMENT 10 //顺序表的递增大小 typedef int Status; //返回状态类型 typedef char ElemType; //元素类型 typedef struct{ ElemType *elem; int length; int listsize; }SqList; //结点类型 指针类型 Status InitList(SqList l) { //初始化顺序表 l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!l.elem) exit(OVERFLOW); l.length=0; l.listsize=LIST_INIT_SIZE; return OK; } int ListLength(SqList l) { //求顺序表的长度 return(l.length); } Status ListInsert_Sq(SqList L,int i, ElemType e) { //在顺序表L的第i个位置前插入元素e,i的合法值为1..L.length+1 if(i1||iL.length+1)

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档