顺序表的基本操作插入删除合并Word格式.docx

上传人:b****3 文档编号:7842960 上传时间:2023-05-09 格式:DOCX 页数:9 大小:52.03KB
下载 相关 举报
顺序表的基本操作插入删除合并Word格式.docx_第1页
第1页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第2页
第2页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第3页
第3页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第4页
第4页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第5页
第5页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第6页
第6页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第7页
第7页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第8页
第8页 / 共9页
顺序表的基本操作插入删除合并Word格式.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

顺序表的基本操作插入删除合并Word格式.docx

《顺序表的基本操作插入删除合并Word格式.docx》由会员分享,可在线阅读,更多相关《顺序表的基本操作插入删除合并Word格式.docx(9页珍藏版)》请在冰点文库上搜索。

顺序表的基本操作插入删除合并Word格式.docx

1.掌握线性表顺序存储结构的特点。

2.掌握线性表顺序存储结构的基本操作(创建、插入、删除)的实现。

3.通过顺序表有序表的合并的实现,掌握顺序表操作特点。

准备

你为本次实验做了哪些准备:

在课后认真复习,基于上课的基础上,对于线性表的存储,插入,删除,合并等有了一定的了解,对于书上给出的程序反复捉摸,达到了较熟练的程度。

进度

本次共有1个练习,完成个。

总结

本次实验的收获、体会、经验、问题和教训:

顺序表初始化、插入、删除算法。

实现两个有序表合并算法.

#include"

"

#include"

#defineOK1

#defineOVERFLOW-1

#defineERROR0

#defineLIST_INIT_SIZE100

#defineLISTINCREMENT10

typedefintElemType;

typedefintStatus;

/*----------顺序表的存储结构定义--------*/

typedefstruct{

ElemType*elem;

intlength;

intlistsize;

}sqlist;

/*-------------初始化顺序表L----------*/

StatusInitList_sq(sqlist*L)

{

L->

elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!

L->

elem)exit(OVERFLOW);

length=0;

listsize=LIST_INIT_SIZE;

returnOK;

}

/*------------顺序表L插入----------*/

StatusListInsert_Sq(sqlist*L,inti,ElemTypee)

ElemType*newbase,*p,*q;

if(i<

1||i>

length+1)returnERROR;

if(L->

length>

=L->

listsize)

{

newbase=(ElemType*)realloc(L->

elem,(L->

listsize+LISTINCREMENT)*sizeof(ElemType));

newbase)exit(OVERFLOW);

elem=newbase;

listsize=L->

listsize+LISTINCREMENT;

}

q=&

(L->

elem[i-1]);

for(p=&

elem[L->

length-1]);

p>

=q;

--p)*(p+1)=*p;

*q=e;

++L->

length;

/*------------顺序表L删除----------*/

StatusListDelete_Sq(sqlist*L,inti,ElemType*e)

ElemType*p,*q;

length)returnERROR;

p=&

*e=*p;

q=L->

elem+L->

length-1;

/*printf("

%d,%d,%d,%d"

p,L->

elem,L->

length,q);

*/

for(++p;

p<

++p)*(p-1)=*p;

--L->

/*-----------合并----------*/

voidMergelist(sqlistLa,sqlistLb,sqlistLc)

inti,j,k;

i=j=k=0;

while((i<

&

(j<

if[i]<

[j])

{

[k++]=[i++];

else

[k++]=[j++];

while(i<

[k++]=[i++];

while(j<

[k++]=[j++];

/*-----------main函数----------*/

main()

sqlistLa,Lb,Lc;

inti;

intn=5;

ElemTypee;

/*------------------INIT-----------------*/

if(InitList_sq(&

La))

printf("

Initisok!

\n"

);

printf("

Length:

%d\n"

;

Listsize:

%d\n\n"

error!

/*------------------INIT-----------------*/

Lb))

Lc))

/*--------------顺序表La输入初始值---------------*/

PleaseinputthevaluesofLa:

for(i=1;

i<

=n;

i++)

scanf("

%d"

&

e);

if(ListInsert_Sq(&

La,i,e)!

=OK)break;

=;

e[%d]=%d\n"

i-1,[i-1]);

/*-------------INSERT-----------------*/

Pleaseinputtheplaceofinsert:

scanf("

i);

Pleaseinputtheelemvalue:

e);

La,i,e)==OK)

/*-------------DELETE----------------*/

Pleaseinputtheplaceofdelete:

if(ListDelete_Sq(&

La,i,&

e)==OK)

Thedeletedelemis:

e);

/*--------------顺序表Lb输入初始值---------------*/

PleaseinputthevaluesofLb:

Lb,i,e)!

/*--------------合并---------------*/

=+;

Mergelist(La,Lb,Lc);

\n合并后的数组为\n"

(3)主函数中调用以上算法,完成如下功能:

建立一个空表La,输入一组元素序列。

输入插入位置及元素值,完成插入操作,并输出插入后顺序表。

输入删除元素位序,完成删除操作,输出删除元素值及删除后顺序表。

建立另一个顺序表Lb,并输入元素。

调用合并算法,将La,Lb合并成Lc,输出合并后Lc

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

当前位置:首页 > 自然科学 > 物理

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

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