- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第一次上机实验报告
数据结构第一次上机实验报告
一 实验题目: 基于顺序表实现集合的并,交,差运算
二 实验要求:
2.1:编写一个程序,实现顺序表的各种基本运算
(1)初始化顺序表h;
(2)依次采用尾插法插入a,b,c,d,e元素;
(3)输出顺序表h
(4)输出顺序表h的长度
判断顺序表h是否为空
输出顺序表h的第三个元素
输出元素在a的位置
在第4个元素位置上插入f元素
输出顺序表h
删除L的第3个元素
输出顺序表
释放顺序表
2.2:编写一个程序,采用顺序表表示集合(集合中不存在重复的元素),并将其按照递增的方式排序,构成有序顺序表,并求这样的两个集合的并,交和差。
三 实验内容:
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 LIST_INIT_SIZE 100
#define LISTINCREEMENT 10
typedef char ElemType;
typedef struct
{
ElemType data[Maxsize];
int length;
}SqList;
3.3基本操作实现:
void InitList(SqList *L)//初始化顺序表
{
L = (SqList *)malloc(sizeof(SqList));//用malloc动态申请一个顺序表的内存空间
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];
L-data[i]=e;
L-length++;
return tr
您可能关注的文档
最近下载
- 高中数学竞赛真题分类汇编 专题7 解析几何(学生版+解析版50题).docx
- 第23课 全民族浴血奋战与抗日战争的胜利(教学课件)高中历史人教统编版中外历史纲要上(共42张PPT张).pptx VIP
- 传统民居与乡土建筑.pptx VIP
- 离散数学(第二版)最全课后习题答案详解(新).pdf
- JGJ∕T 233-2011 水泥土配合比设计规程.pdf VIP
- 2024年8月11日平凉市直遴选笔试真题及答案解析.doc VIP
- 华南师范大学2020-2021学年第2学期《教育心理学》期末考试试卷及标准答案.docx
- 膜片钳常见问题汇总(人人都会膜片钳).doc
- 2024年急诊科优质护理服务工作总结.docx VIP
- 2024学年八年级上学期期末化学试题(含答案) (1) .pdf VIP
文档评论(0)