实验二 顺序表与链表.docx
- 文档编号:28103343
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:33
- 大小:208.48KB
实验二 顺序表与链表.docx
《实验二 顺序表与链表.docx》由会员分享,可在线阅读,更多相关《实验二 顺序表与链表.docx(33页珍藏版)》请在冰豆网上搜索。
实验二顺序表与链表
常熟理工学院
《数据结构与算法》实验指导与报告书
__2017_学年第__1__学期
专业:
物联网工程_____________________________
学号:
______________________________
姓名:
__________________________________
实验名称:
顺序表与链表_______________________________
实验地点:
N6-210_________________________________
指导教师:
聂盼红_____________________________
计算机科学与工程学院
2017
实验二顺序表与链表
【实验目的】
1、掌握线性表中元素的前驱、后续的概念。
2、掌握顺序表与链表的建立、插入元素、删除表中某元素的算法。
3、对线性表相应算法的时间复杂度进行分析。
4、理解顺序表、链表数据结构的特点(优缺点)。
【实验学时】
4学时
【实验预习】
回答以下问题:
1、顺序表的存储表示
在顺序表中,任一数据元素的存放位置是从起始位置开始、与该数据元素的位序成正比的对应存储位置,借助LOC(ai)=LOC(a1)+(i-1)*1 确定,则顺序表是一种随机存取的存储结构。
2、单链表的存储表示
线性链表也称单链表,在每一个结点中只包含一个指针,用于指示该结点的直接后继结点,整个链表通过指针相连,最后一个结点因为没有后继结点,其指针置为空(NULL)。
这样,链表中所有数据元素(结点)构成一对一的逻辑关系,实现线性表的链式存储。
【实验内容和要求】
1、按照要求完成程序exp2_1.c,实现顺序表的相关操作。
以下函数均具有返回值,若操作完成,返回OK,操作失败返回ERROR。
函数需返回的其他数据,使用函数参数返回。
exp2_1.c部分代码如下:
#include
#include
#defineERROR0
#defineMAXSIZE100
#defineOK1
typedefintElemType;/*定义表元素的类型*/
typedefstructslist{
ElemType*list;
intlistsize;
intlength;
}Sqlist;
Sqlist*L;
/*
(1)---补充顺序表的存储分配表示,采用定长和可变长度存储均可*/
/*函数声明*/
intInitList_sq(Sqlist*L);
intCreateList_sq(Sqlist*L);
intListInsert_sq(Sqlist*L,inti,ElemTypee);
intPrintList_sq(Sqlist*L);
intListDelete_sq(Sqlist*L,inti,ElemType*e);
intListLocate(Sqlist*L,ElemTypee,int*pos);
intmenu_select();
/*
(2)---顺序表的初始化*/
intInitList_sq(Sqlist*L)
{
L->list=(ElemType*)malloc(MAXSIZE*sizeof(ElemType));
if(L->list==NULL)
returnERROR;
else
{
L->length=0;
L->listsize=MAXSIZE;
}
return0;
}/*InitList*/
/*(3)---创建具有n个元素的顺序表*/
intCreateList_sq(Sqlist*L)
{
inta,b,c;
printf("请输入输入数据的个数n:
");
scanf("%d",&a);
printf("请输入输入的数据:
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 顺序表与链表 实验 顺序