实验报告01-顺序表的基本操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的及要求:
了解和掌握顺序表的特点;
掌握顺序表基本操作的实现;
要求完成顺序表的初始化、插入、删除、显示操作的实现。实验设备环境及要求:
PC机一台,内存要求128M以上,VC++6.0集成开发环境。实验内容与步骤:
1、在VC++6.0环境中新建一个工程和C++文件;
2、实现顺序表初始化、插入、删除算法,代码如下:
#include
#include
#define MaxSize 100
typedef char ElemType;
typedef struct{
ElemType *elem;
int length;
}SqList;
int InitList_Sq(SqList &L){
L.elem = (ElemType *)malloc(MaxSize*sizeof(ElemType));
if(!L.elem) return 0;
L.length = 0;
return 1;
}
int ListInsert_Sq(SqList &L,int i,ElemType e){
if(i<1||i>L.length+1) return 0;
ElemType *p;
ElemType *q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
++L.length;
return 1;
}
int ListDelete_Sq(SqList &L,int i,ElemType &e){
if(i<1||i>L.length) return 0;
ElemType *p=&(L.elem[i-1]);
e=*p;
ElemType *q=L.elem+L.length-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--L.length;
return 1;
}
void Disp_Sq(SqList L){
if(L.length==0) printf("此顺序表为空表!\n");
for(int i=0;i printf("%c",L.elem[i]); printf("\n"); } void main(){ ElemType e; SqList L; InitList_Sq(L); Disp_Sq(L); ListInsert_Sq(L,1,'A'); ListInsert_Sq(L,2,'B'); ListInsert_Sq(L,3,'C'); Disp_Sq(L); ListDelete_Sq(L,1,e); Disp_Sq(L); printf("删除的元素是:%c\n",e); } 实验指导与数据处理: 实验结果:此顺序表为空表! ABC BC 删除的元素是:A 分析讨论: 本次实验通过对顺序表基本操作的实现,加深了对顺序表特点的理解,并且熟悉了VC++6.0集成环境,虽然在调试过程中遇到一些问题,但经分析后达到了预期的结果。