数据结构中顺序表的基本操作Word文件下载.docx

上传人:b****2 文档编号:4286782 上传时间:2023-05-03 格式:DOCX 页数:9 大小:15.80KB
下载 相关 举报
数据结构中顺序表的基本操作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

StatusInitList(SqList&

L){

//初始化一个顺序表

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

if(!

L.elem)exit(OVERFLOW);

L.length=0;

L.listsize=LIST_INIT_SIZE;

returnOK;

}//InitSqList

StatusListInsert(SqList&

L,inti,ElemTypee){

//在第i个元素前插入一个新的元素

if(i<

1||i>

++L.length)returnERROR;

if(L.length==L.listsize)

{

ElemType*newbase=(ElemType*)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(ElemType));

newbase)exit(OVERFLOW);

L.elem=newbase;

L.listsize=LIST_INIT_SIZE+LISTINCREMENT;

//勿忘

}

for(intj=L.length;

j>

=i;

--j)//此处要注意

L.elem[j]=L.elem[j-1];

L.elem[i-1]=e;

}//ListInsert

StatusGetElem(SqListL,inti,ElemType&

e){

//返回顺序表中的第i个元素

1||i>

L.length)returnERROR;

e=L.elem[i-1];

}//GetElem

StatusListDelete(SqList&

L,inti,ElemType&

//删除顺序表中的第i个元素

for(i;

i<

L.length;

i++)

L.elem[i-1]=L.elem[i];

--L.length;

}//ListDelete

StatusPriorElem(SqListL,ElemTypecur_e,ElemType&

pre_e){

//返回一个不是首元素的前驱

inti=2;

if(cur_e==L.elem[0])returnERROR;

while(i<

=L.length&

&

(L.elem[i-1]!

=cur_e))

i++;

if(i==L.length+1)returnERROR;

elsepre_e=L.elem[i-2];

}//PriorElem

StatusNextElem(SqListL,ElemTypecur_e,ElemType&

next_e){

//返回一个不是末元素的后继

inti=1;

L.length&

if(i==L.length)returnERROR;

elsenext_e=L.elem[i];

}//NextElem

StatusListEmpty(SqListL){

//判断顺序表是否为空

returnL.length==0;

}//ListEmpty

StatusListLength(SqListL){

//求顺序表的长度

returnL.length;

}//ListLength

StatusDestroyList(SqList&

//销毁一个顺序表

if(L.elem)

free(L.elem);

L.elem=NULL;

printf("

此顺序表已被销毁。

"

);

}//DestroyList

StatusClearList(SqList&

//清空一个顺序表

}//ClearList

StatusListPrint(SqList&

L)

{

顺序表为:

if(ListEmpty(L))

空。

\n"

returnERROR;

for(inti=0;

i<

++i)

%-4d"

L.elem[i]);

}

voidmain()

SqListL;

ElemTypea,b,c,d,e,f,pre_e,next_e;

inti,j,k,l,m,menu;

charp,q,r,s;

intis_stop_;

InitList(L);

is_stop_=FALSE;

while(!

is_stop_)

printf(

"

1.添加元素2.查看指定位置的元素\n"

3.删除元素4.查找元素前驱\n"

5.查找元素后继6.检查是否为空\n"

7.列出所有元素8.查看列表长度\n"

9.清空表10.释放列表内存并退出\n"

11.退出\n"

);

请选择,执行以上操作:

scanf("

%d"

&

menu);

switch(menu)

//"

1.添加元素;

case1:

请输入你想创建的顺序表中元素的个数:

i);

1)printf("

您输入的值有误,无法创建顺序表。

else

{

printf("

请您依次输入您想创建的顺序表的元素:

for(j=1;

j<

j++)

{

a);

ListInsert(L,L.length+1,a);

}

}

ListPrint(L);

break;

2.查看指定位置的元素\n"

case2:

请输入您想获取的元素的位序:

k);

if(GetElem(L,k,b))printf("

获得的元素为:

%d\n"

b);

elseprintf("

您输入的值有误,无法获取元素。

3.删除元素\n"

case3:

请输入您想删除的元素的位序:

l);

if(ListDelete(L,l,c))

删除的元素为:

c);

删除元素后的顺序表为:

您输入的值有误,无法删除元素。

4.查找元素前驱\n"

case4:

您想返回那个元素的前驱?

d);

if(PriorElem(L,d,pre_e))printf("

元素%d的前驱为%d\n"

d,pre_e);

您输入的值有误,无法返回前驱。

5.查找元素后继\n"

case5:

您想返回那个元素的后继?

e);

if(NextElem(L,e,next_e))printf("

元素%d的后继为%d\n"

e,next_e);

您输入的值有误,无法返回后继。

6.检查是否为空\n"

case6:

if(ListEmpty(L))printf("

此顺序表为空。

此顺序表不为空。

7.列出所有元素\n"

case7:

8.查看列表长度\n"

case8:

此顺序表的长度为:

%d\n"

ListLength(L));

9.清空表\n"

case9:

ClearList(L);

顺序表已清空。

10.释放列表内存\n"

case10:

DestroyList(L);

is_stop_=TRUE;

case11:

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

当前位置:首页 > 总结汇报 > 学习总结

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

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