顺序表基本算法实验报告.docx

上传人:b****2 文档编号:552827 上传时间:2023-04-29 格式:DOCX 页数:9 大小:114.38KB
下载 相关 举报
顺序表基本算法实验报告.docx_第1页
第1页 / 共9页
顺序表基本算法实验报告.docx_第2页
第2页 / 共9页
顺序表基本算法实验报告.docx_第3页
第3页 / 共9页
顺序表基本算法实验报告.docx_第4页
第4页 / 共9页
顺序表基本算法实验报告.docx_第5页
第5页 / 共9页
顺序表基本算法实验报告.docx_第6页
第6页 / 共9页
顺序表基本算法实验报告.docx_第7页
第7页 / 共9页
顺序表基本算法实验报告.docx_第8页
第8页 / 共9页
顺序表基本算法实验报告.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

顺序表基本算法实验报告.docx

《顺序表基本算法实验报告.docx》由会员分享,可在线阅读,更多相关《顺序表基本算法实验报告.docx(9页珍藏版)》请在冰点文库上搜索。

顺序表基本算法实验报告.docx

顺序表基本算法实验报告

 

C语言程序设计实践

 

综合题目:

顺序表基本算法

班级:

姓名:

同组人员:

提交日期:

 

一、程序功能:

1、建立一个顺序表。

2、对建立好的顺序表进行一些基本的操作,如:

a.顺序表的类型定义。

b.求顺序表长操作。

c.取顺序表元素操作。

d.按值查找操作。

e.显示元素操作。

f.插入操作。

g.删除操作。

h.显示元素操作。

二、算法设计思想:

用一组存储单元来存放线性表中的数据元素,把顺序表中的所有元素按照其逻辑结构顺序依次储存到从计算机储存器中指定储存位置开始的一块连续的储存空间。

线性表中的第一个位置储存在数组的起始位置(下标为0)在定义一个顺序表时,除了定义一个数组来储存线性表中的所有元素,还需要定义一个整型变量来储存线性表的实际长度。

然后通过对数组元素中的元素进行操作,对顺序表进行基本算法。

 

三、算法运行结果

1、显示整个功能

 

2、设置顺序表的长度:

3、求出并返回顺序表的长度:

4、在顺序表中取出某个位置的元素并返回其值:

5、显示顺序表中的元素:

6、在顺序表的某个位置插入元素:

 

7、删除顺序表中的某个元素

8、输出顺序表

9、将顺序表逆序输出

10、退出对顺序表的操作:

 

 

四、收获及体会

通过对顺序表的几个基本运算的调用,实现顺序表的几个基本算法。

同时也懂得如何定义顺序表,还有顺序表的用法。

 

五、算法源代码

#include

#include

#defineMaxSize50

typedefintElemType;

typedefstruct

{

ElemTypedata[MaxSize];

intlength;

}SqList;//顺序表类型

voidInitList(SqList*&L);//初始化顺序表

voidCreateList(SqList*&L,ElemTypea[],ElemTypen);//建立顺序表

boolListEmpty(SqList*L);//判断顺序表是否为空表

intListLength(SqList*L);//求顺序表长度

voidDispList(SqList*L);//输出顺序表

boolGetElem(SqList*L,ElemTypei,ElemType&e);//求顺序表中某个元素值

intLocateElem(SqList*L,ElemTypee);//按照元素值查找

boolListInsert(SqList*&L,ElemTypei,ElemTypee);//插入元素e

boolListDelete(SqList*&L,inti,ElemType&e);//删除元素

voidDestroyList(SqList*&L);//销毁顺序表

voidInitList(SqList*&L)//初始化顺序表

{

L=(SqList*)malloc(sizeof(SqList));

L->length=0;

}

voidCreateList(SqList*&L,ElemTypea[],ElemTypen)//建立顺序表2

{

inti;

L=(SqList*)malloc(sizeof(SqList));

for(i=0;i

L->data[i]=a[i];

L->length=n;

}

boolListEmpty(SqList*L)//判断顺序表是否为空表

{

return(L->length==0);

}

intListLength(SqList*L)//求顺序表长度

{

return(L->length);

}

voidDispList(SqList*L)//输出顺序表

{

inti;

for(i=0;ilength;i++)

printf("%3d",L->data[i]);

printf("\n");

}

boolGetElem(SqList*L,ElemTypei,ElemType&e)//求顺序表中某个元素值

{

if(i<1||i>L->length)

returnfalse;

e=L->data[i-1];

returntrue;

}

intLocateElem(SqList*L,ElemTypee)//按照元素值查找

{

inti=0;

while(ilength&&L->data[i]!

=e)

i++;

if(i>L->length)

return0;

else

returni+1;

}

boolListInsert(SqList*&L,ElemTypei,ElemTypee)//插入元素e

{

intj;

if(i<1||i>L->length+1)

returnfalse;

i--;

for(j=L->length;j>i;j--)

L->data[j]=L->data[j-1];

L->data[i]=e;

L->length++;

returntrue;

}

boolListDelete(SqList*&L,inti,ElemType&e)//删除元素

{

intj;

L=NULL;

if(i<1||i>L->length)

returnfalse;

i--;

e=L->data[i];

for(j=i;jlength-1;j++)

L->data[j]=L->data[j+1];

L->length--;

returntrue;

}

voidDestroyList(SqList*&L)//销毁顺序表

{

free(L);

L=NULL;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2