1 / 8
文档名称:

数据结构实验一.doc

格式:doc   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验一.doc

上传人:zgs35866 2015/6/6 文件大小:0 KB

下载得到文件列表

数据结构实验一.doc

文档介绍

文档介绍:实验报告
实验一线性表
实验目的:
;
,以及在该存储结构下的基本操作;并能灵活运用;
,以及在该存储结构下的基本操作;并能灵活运用;
,以及在该存储结构下的基本操作。
实验原理:
线性表顺序存储结构下的基本算法;
线性表链式存储结构下的基本算法;
实验内容:
2—21 设计单循环链表,要求:
(1) 单循环链表抽象数据类型包括初始化操作、秋数据元素个数操作、插入操作、删除操作,取数据元素操作和判非空操作。
(2)设计一个测试主函数,实际运行验证所设计单循坏链表的正确性。
2—22 设计一个有序顺序表,要求:
(1)有序顺序表的操作集合有如下操作:初始化,求数据元素个数、插入、删除和取数据元素操作。有序顺序表与顺序表的主要区别是:有序顺序表中数据元素按数据元素值非递减有序。
(2)设计一个测试主函数,实际运行验证所设计单循坏链表的正确性。
*(3)设计合并函数ListMerge(L1,L2,L3),功能是把有序顺序表L1和L2中的数据元素合并到L3中,要求把L3中的数据元素依然保持有序。并设计一个主函数,验证该合并函数的正确性。
程序代码:
2—21
(1) typedef struct Node
{
DataType data;
struct Node *next;
}SLNode;
void ListInitiate(SLNode **head)
{
if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)
exit(1);
(*head)->next=NULL;
}
int ListLength(SLNode *head)
{
SLNode *p=head;
int size=0;
while(p->next!=NULL)
{p=p->next;
size++;
}
return size;
}
int ListInsert(SLNode *head,int i,DataType x)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(j!=i-1)
{
printf("insert wrong way !");
return 0;
}
if((q=(SLNode *)malloc(sizeof(SLNode)))==NULL)exit(1);
q->data=x;
q->next=p->next;
p->next=q;
return 1;
}
int ListDelete(SLNode *head,int i,DataType *x)
{
SLNode *p,*s;
int j;
p=head;
j=-1;
while(p->next!=NULL&&p->next->next!=NULL&&j<i-1)
{
p=p