实验报告01-顺序表的基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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集成环境,虽然在调试过程中遇到一些问题,但经分析后达到了预期的结果。

相关文档
最新文档