- 71
- 0
- 约4.87千字
- 约 16页
- 2020-03-26 发布于江西
- 举报
实验报告
课程
数据结构
实验名称
实验一 线性表
学号
姓名
实验日期:
实验一
线性表
实验目的:
理解线性表的逻辑结构特性;
熟练掌握线性表的顺序存储结构的描述方法,以及在该存储结构下的基本操作;并能灵 活运用;
熟练掌握线性表的链表存储结构的描述方法,以及在该存储结构下的基本操作;并能灵 活运用;
掌握双向链表和循环链表的的描述方法,以及在该存储结构下的基本操作。
实验原理:
线性表顺序存储结构下的基本算法;
线性表链式存储结构下的基本算法;
实验内容:
2-21 设计单循环链表,要求:
(1)
单循环链表抽象数据类型包括初始化操作、求数据元素个数操作、插入操作、删
除操作、取消数据元素操作和判非空操作。
(2)
设计一个测试主函数,实际运行验证所设计单循环链表的正确性。
2-22 .设计一个有序顺序表,要求:
(1)
有序顺序表的操作集合有如下操作:初始化、求数据元素个数、插入、删除和取
数据元素。有序顺序表与顺序表的主要区别是:有序顺序表中的数据元素按数据元素值非 递减有序。
设计一个测试主函数,实际运行验证所设计有序顺序表的正确性。
设计合并函数 ListMerge(L1,L2,L3 ),功能是把有序顺序表 L1 和 L2 中的数据元
素合并到 L3,要求 L3 中的数据元素依然保持有序。并设计一个主函数,验证该合并函数 的正确性。
程序代码:
2-21(1)头文件 LinList.h 如下:
typedef struct node
{
DataType data;
struct node *next;
}SLNode;
/*(1)初始化 ListInitiate(SLNode * * head)*/
void ListInitiate(SLNode * * head)
{ /*如果有内存空间,申请头结点空间并使头指针 head 指向头结点*/ if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)exit(1);
(*head)-next=NULL; /*置结束标记 NULL*/
}
/*(2)求当前数据元素个数 ListLength(SLNode * head)*/
int ListLength(SLNode * head)
{
SLNode *p=head;
int size=0;
while(p-next!=head)
{
p=p-next;
size++;
}
return size;
}
/*(3)插入 ListInsert(SLNode * head, int i, DataType x)*/
/*在带头结点的单链表的第 i(0=i=size)个结点前*/
/*插入一个存放数据元素 x 的结点。插入成功时返回 1,失败返回 0*/ int ListInsert(SLNode * head, int i, DataType x)
{
SLNode *p, *q;
int j;
p=head;
j=-1;
while(p-next!=head ji-1)
/*最终让指针指向第 i-1 个结点*/
{
p=p-next;
j++;
}
if(j!=i-1)
{
printf(The inserted position is error!);
return 0;
}
/*生成新结点由指针 q 指示*/
if((q=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);
q-data=x;
q-next=p-next;
p-next=q;
return 1;
}
/*(4)删除 ListDelete(SLNode * head, int i, DataType *x) */
/*删除带头结点的单链表 head 的第 i(0=i=size)个结点前*/
/*被删除结点的数据元素域由 x 带回。删除成功时返回 1,失败返回 0*/ int ListDelete(SLNode * head, int i, DataType *x)
{
SLNode *p, *s;
int j;
p=head;
j=-1;
while(p-next!=head p-next-next!=head ji-1)
/*最终让指针指向第 i-1 个结点*/
{
p=p-next;
j++;
}
if(j!=i-1)
{
printf(The deleted position of parameter is error!);
return 0;
}
s=p-next; /*指针 s 指指向 ai 结点*/
*x=s-data;
p-next=p-next-next; /*删除*/
free(s); /*释放指针 s 所指结点的内存空间
原创力文档

文档评论(0)