线性表Word格式.docx

上传人:b****3 文档编号:16596568 上传时间:2022-11-24 格式:DOCX 页数:24 大小:18.23KB
下载 相关 举报
线性表Word格式.docx_第1页
第1页 / 共24页
线性表Word格式.docx_第2页
第2页 / 共24页
线性表Word格式.docx_第3页
第3页 / 共24页
线性表Word格式.docx_第4页
第4页 / 共24页
线性表Word格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

线性表Word格式.docx

《线性表Word格式.docx》由会员分享,可在线阅读,更多相关《线性表Word格式.docx(24页珍藏版)》请在冰豆网上搜索。

线性表Word格式.docx

L,intFlag);

voidListDelete(SqList&

voidDelete_LElem(SqList&

voidClearList(SqList&

voidDestoryList(SqList&

LB,SqList&

LC);

voidMergeList(SqListLA,SqListLB,SqList&

voidOutput(SqListLA,SqListLB,SqListLC);

voidoutput_L(SqListL);

voidmain()

inta=1;

SqListLA,LB,LC;

InitList(LA,SIZE);

InitList(LB,SIZE);

InitList(LC,2*SIZE);

ListInsert_L(LA,flag1);

ListInsert_L(LB,flag2);

system("

cls"

);

while(a)

{

printf("

\n\n"

\t\t\t主菜单\n\n"

\t\t-------------------------------------\n\n"

\t\t\t1——输出前驱\n\n"

\t\t\t2——输出后继\n\n"

\t\t\t3——插入元素\n\n"

\t\t\t4——删除元素\n\n"

\t\t\t5——置空线性表\n\n"

\t\t\t6——销毁线性表\n\n"

\t\t\t7——合并线性表\n\n"

\t\t\t8——输出线性表\n\n"

\t\t\t0——退出\n"

scanf("

%d"

&

a);

switch(a)

{

case1:

system("

PriorElem(LA,LB);

break;

case2:

NextElem(LA,LB);

case3:

ListInsert(LA,LB);

case4:

ListDelete(LA,LB);

case5:

ClearList(LA,LB);

case6:

DestoryList(LA,LB,LC);

case7:

MergeList(LA,LB,LC);

case8:

Output(LA,LB,LC);

case0:

printf("

\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用\n\n\n\n\n\n\n\n\n\n\n\n"

}

}

}

L,intsize)

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

if(!

L.elem)

exit(OVERFLOW);

L.length=0;

L.listsize=size;

returnOK;

e)

if(i<

1||i>

L.length)

returnERROR;

e=L.elem[i-1];

voidPriorElem(SqListLA,SqListLB)

inta;

printf("

\t\t\t1——输出LA中元素的前驱\n\n"

\t\t\t2——输出LB中元素的前驱\n\n"

\t\t\t3——退出\n"

scanf("

switch(a)

case1:

system("

Prior_LElem(LA,flag1);

break;

case2:

Prior_LElem(LB,flag2);

case3:

voidPrior_LElem(SqListL,intFlag)

inta,e,i,flag=0;

if(L.length==0)

线性表已被置空"

elseif(Flag==0)

线性表已被销毁"

else

请输入输出前驱的元素:

"

G:

for(i=1;

i<

=L.length;

i++)

GetElem(L,i,e);

if(a==e)

{

flag=1;

if(i==1)

{

printf("

\n\n元素%d没有前驱"

a);

break;

}

GetElem(L,i-1,e);

printf("

\n\n元素%d的前驱是:

a,e);

}

if(flag==0)

\n\n你输的数据不在线性表中,请重新输入:

gotoG;

\n\n\n\n\n\n按Enter键→"

getchar();

getchar();

voidNextElem(SqListLA,SqListLB)

\t\t\t1——输出LA中元素的后继\n\n"

\t\t\t2——输出LB中元素的后继\n\n"

\t\t\t3——退出\n"

Next_LElem(LA,flag1);

Next_LElem(LB,flag2);

voidNext_LElem(SqListL,intFlag)

请输入输出后继的元素:

I:

{

if(i==L.length)

\n\n元素%d没有后继"

GetElem(L,i+1,e);

\n\n元素%d的后继是:

gotoI;

LB)

\t\t\t1——在LA中插入元素\n\n"

\t\t\t2——在LB中插入元素\n\n"

ListInsert_L(LA,flag1);

ListInsert_L(LB,flag2);

L,intFlag)

inta,b,i,*p,*q;

if(Flag==0)

if(L.length==0)

请在线性表中输入数据,输入0结束(0不作为线性表中的数据)\n"

for(i=0;

SIZE;

scanf("

L.elem[i]);

if(L.elem[i]==0)

L.length++;

elseif(L.length>

0&

&

L.length<

SIZE)

请输入要插入的数据:

A:

L.length;

if(a==L.elem[i])

\n数据%d已存在线性表中,请重新输入:

gotoA;

\n请输入要插入的位置:

(1~%d)"

L.length);

B:

b);

if(b>

L.length||b<

1)

\n\n你输入的位置有误\n请重新输入:

gotoB;

q=&

(L.elem[b-1]);

for(p=&

(L.elem[L.length-1]);

p>

=q;

--p)

*(p+1)=*p;

*q=a;

++L.length;

\n数据%d已插入到线性表中"

else

线性表已存满"

{

\t\t\t1——删除LA中的元素\n\n"

\t\t\t2——删除LB中的元素\n\n"

Delete_LElem(LA,flag1);

Delete_LElem(LB,flag2);

inta,*p,*q,flag=0,i;

请输入要删除的数据:

E:

for(i=0;

if(a==L.elem[i])

break;

\n数据%d不在线性表中,请重新输入:

gotoE;

p=&

(L.elem[i]);

q=L.elem+L.length-1;

for(++p;

p<

++p)

*(p-1)=*p;

--L.length;

第%d个元素%d已被删除\n"

i+1,a);

\n\n\n按Enter键→"

getchar();

\t\t\t1——将LA置为空表\n\n"

\t\t\t2——将LB置为空表\n\n"

\t\t\t3——将LA和LB置为空表\n\n"

\t\t\t4——退出\n"

LA.length=0;

已将LA表置为空表\n"

LB.length=0;

已将LB表置为空表\n"

已将LA和LB表置为空表\n"

case4:

LC)

\t\t\t1——删除LA表\n\n"

\t\t\t2——删除LB表\n\n"

\t\t\t3——删除LA和LB表\n\n"

free(LA.elem);

flag1=0;

已删除LA表\n"

free(LB.elem);

flag2=0;

已删除LB表\n"

已删除LA和LB表\n"

int*pa,*pb,*pc,*pa_last,*pb_last;

pa=LA.elem;

pb=LB.elem;

pc=LC.elem;

pa_last=LA.elem+LA.length-1;

pb_last=LB.elem+LB.length-1;

while(pa<

=pa_last&

pb<

=pb_last)

if(*pa<

*pb)

*pc++=*pa++;

LC.length++;

elseif(*pa==*pb)

pb++;

{

*pc++=*pb++;

=pa_last)

*pc++=*pa++;

LC.length++;

while(pb<

*pc++=*pb++;

已将LA和LB合并到LC中"

voidOutput(SqListLA,SqListLB,SqListLC)

inta,b,c,d,i;

\t\t\t1——输出LA表\n\n"

\t\t\t2——输出LB表\n\n"

\t\t\t3——输出LC表\n\n"

\t\t\t4——输出LA、LB和LC表\n\n"

\t\t\t5——退出\n"

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1