没有合适的资源?快使用搜索试试~ 我知道了~
基于单链表实现集合的并交差运算实验报告.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 92 浏览量
2022-10-18
22:39:01
上传
评论
收藏 516KB PDF 举报
温馨提示
试读
21页
基于单链表实现集合的并交差运算实验报告.pdf基于单链表实现集合的并交差运算实验报告.pdf
资源详情
资源评论
资源推荐
基于单链表实现集合的并交差运算实验报告
一
实验题目
:
基于单链表实现集合的并交差运算
二 实验要求:
2.2:
编写一个程序,实现顺序表的各种基本运算
(1)初始化单链表 h;
(2)依次采用尾插法插入 a,b,c,d,e 元素;
(3)输出单链表 h
(4)输出单链表 h 的长度
(5)判断单链表 h 是否为空
(6)输出单链表 h 的第三个元素
(7)输出元素在 a 的位置
(8)在第 4 个元素位置上插入 f 元素
(9)输出单链表 h
(10)删除 L 的第 3 个元素
(11)输出单链表
(12)释放单链表
2.2:
编写一个程序,采用单链表表示集合 (集合中不存在重复的元素 ),
并将其按照递增的方式排序,构成有序单链表,并求这样的两个集合的并,
交和差。
三 实验内容:
3.1 线性表的抽象数据类型:
ADT List{
数据对象;D=
{a
i
| a
i
ElemSet,i 1,2,..., n, n 0}
数据关系:R1=
{ a
i1
, a
i
| a
i1
, a
i
D,i 2,..., n}
基本操作:
InitList(&L)
操作结果;构造一个空的线性表 L
1 / 21
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 存储结构的定义;
typedef char ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkList;
3.3 基本操作实现:
2 / 21
/* 单链表的初始化 */
void InitList(LinkList *&L)
{
L = (LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}
/* 向单链表中插入数据元素 */
bool ListInsert(LinkList *&L,int x,char e)
{
int j = 0;
LinkList *p = L, *s;
while(p!=NULL && j<x-1)
{
p = p->next;
j++;
}
if(p==NULL)
{
return false;
}
else
{
s = (LinkList *)malloc(sizeof(LinkList));
s->data = e;
s->next = p->next;
p->next = s;
return true;
}
}
/* 输出单链表 */
void DispList(LinkList *L)
{
LinkList *p = L->next;
while(p!=NULL)
{
3 / 21
printf("%c",p->data);
p = p->next;
}
printf("\n");
}
/* 求单链表的长度 */
int ListLength(LinkList *L)
{
LinkList *p = L->next;
int i = 0;
while(p!=NULL)
{
i++;
p = p->next;
}
return i;
}
/* 查看单链表是否为空 */
bool ListEmpty(LinkList *L)
{
return L->next==NULL;
}
/* 求单链表中某个数据元素值 */
bool GetElem(LinkList *L,int i, ElemType &e)
{
LinkList *p = L;
int j = 0;
while(p!=NULL && j < i)
{
p=p->next;
j++;
}
if(p==NULL)
{
4 / 21
剩余20页未读,继续阅读
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0