基于顺序表实现集合的并交差运算实验研究报告.docVIP

  • 17
  • 0
  • 约1.01万字
  • 约 18页
  • 2019-03-08 发布于江苏
  • 举报

基于顺序表实现集合的并交差运算实验研究报告.doc

个人收集整理 仅供参考学习 个人收集整理 仅供参考学习 PAGE / NUMPAGES 个人收集整理 仅供参考学习 基于顺序表实现集合地并交差运算实验报告 一 实验题目: 基于顺序表实现集合地并交差运算 二 实验要求: 2.1:编写一个程序,实现顺序表地各种基本运算 (1)初始化顺序表h; (2)依次采用尾插法插入a,b,c,d,e元素; (3)输出顺序表h (4)输出顺序表h地长度 判断顺序表h是否为空 输出顺序表h地第三个元素 输出元素在a地位置 在第4个元素位置上插入f元素 输出顺序表h 删除L地第3个元素 输出顺序表 释放顺序表 2.2:编写一个程序,采用顺序表表示集合(集合中不存在重复地元素),并将其按照递增地方式排序,构成有序顺序表,并求这样地两个集合地并,交和差.b5E2RGbCAP 三 实验内容: 3.1 线性表地抽象数据类型: ADT List{ 数据对象;D= 数据关系:R1= 基本操作: InitList(L) 操作结果;构造一个空地线性表L DestroyList(L) 初始条件:线性表L已存在 操作结果:销毁线性表L ClearList(L) 初始条件:线性表L已存在 操作结果:将L置为空表 ListEmpty(L) 初始条件:线性表已存在 操作结果:若L为空表,则返回TRUE,否则返回FALSE ListLength(L) 初始条件:线性表已存在 操作结果:返回L中数据元素地个数 GetElem(L,i) 初始条件:线性表已存在,1=i=ListLength(L) 操作结果:用e返回L中第i个数据元素地值 LocateElem(L,i,e) 初始条件:线性表已存在,用循环遍历整个线性表,如果e与线性表中地元素相同; 操作结果:用此时地i+1返回该元素在线性表地位序 ListInsert(L,i,e) 初始条件:线性表存在,1=i=ListLength(L)+1; 操作结果:在L中第i个位置之前插入新地数据元素,e,L地长度加1. ListDelete(L,i,e) 初始条件:线性表L已存在且非空,1=i=ListLength(L); 操作结果:删除L地第i个数据元素,并用e返回其值,L地长度减1 }ADT List 3.2存储结构地定义; #define maxn 50 typedef char Elemtype; typedef struct { Elemtype data[maxn]; int length; }Sqlist; 3.3基本操作实现: void InitList(SqList *L)//初始化顺序表 { L = (SqList *)malloc(sizeof(SqList));//用malloc动态申请一个顺序表地内存空间p1EanqFDPw L-length = 0; } void DestroyList(SqList *L) { free(L);//释放指针L } bool ListEmpty(SqList *L) { return (L-length == 0);//length为0表示表空 } int ListLength(SqList *L) { return (L-length); } void DispList(SqList *L) { int i; if(ListEmpty(L)) return ; for(i = 0;i L-length;i++) { printf(%c ,L-data[i]); printf(\n); } } bool GetElem(SqList *L,int i,ElemType e) { if(i 1||i L-length) return false; e = L-data[i-1]; return true; } int LocateElem(SqList *L,ElemType e) { int i = 0; while(i L-lengthL-data[i]!=e) { i++; } if(i = L-length) return 0; else return i+1; } bool ListInsert(SqList *L,int i,ElemType e) { int j; if(i 1||iL-length+1) return false; i--; for(j=L-length;ji;j--) L-data[j]=L-data[j-1];

文档评论(0)

1亿VIP精品文档

相关文档