ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:18.23KB ,
资源ID:3691741      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3691741.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(线性表.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

线性表.docx

1、线性表#include#include#define SIZE 20#define OK 1#define ERROR 0#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct ElemType *elem; int length; int listsize; SqList;int flag1=1,flag2=1;Status InitList(SqList &L,int size);Status GetElem(SqList L,int i,ElemType &e);void PriorElem(Sq

2、List LA,SqList LB);void Prior_LElem(SqList L,int Flag);void NextElem(SqList LA,SqList LB);void Next_LElem(SqList L,int Flag);void ListInsert(SqList &LA,SqList &LB);void ListInsert_L(SqList &L,int Flag);void ListDelete(SqList &LA,SqList &LB);void Delete_LElem(SqList &L,int Flag);void ClearList(SqList

3、 &LA,SqList &LB);void DestoryList(SqList &LA,SqList &LB,SqList &LC);void MergeList(SqList LA,SqList LB,SqList &LC);void Output(SqList LA,SqList LB,SqList LC);void output_L(SqList L);void main() int a=1; SqList LA,LB,LC; InitList(LA,SIZE); InitList(LB,SIZE); InitList(LC,2*SIZE); ListInsert_L(LA,flag1

4、); ListInsert_L(LB,flag2); system(cls); while(a) printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1输 出 前 驱nn); printf(ttt2输 出 后 继nn); printf(ttt3插 入 元 素nn); printf(ttt4删 除 元 素nn); printf(ttt5置 空 线 性 表nn); printf(ttt6销 毁 线 性 表nn); printf(ttt7合 并 线 性 表nn); printf(ttt8输 出 线 性 表nn); printf(ttt0

5、退 出n); scanf(%d,&a); switch(a) case 1: system(cls); PriorElem(LA,LB); system(cls); break; case 2: system(cls); NextElem(LA,LB); system(cls); break; case 3: system(cls); ListInsert(LA,LB); system(cls); break; case 4: system(cls); ListDelete(LA,LB); system(cls); break; case 5: system(cls); ClearList(L

6、A,LB); system(cls); break; case 6: system(cls); DestoryList(LA,LB,LC); system(cls); break; case 7: system(cls); MergeList(LA,LB,LC); system(cls); break; case 8: system(cls); Output(LA,LB,LC); system(cls); break; case 0: system(cls); printf(nnnnnnnntttt 谢谢使用nnnnnnnnnnnn); break; Status InitList(SqLis

7、t &L,int size) L.elem=(ElemType *)malloc(size*sizeof(ElemType); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=size; return OK;Status GetElem(SqList L,int i,ElemType &e) if(iL.length) return ERROR; e=L.elemi-1; return OK;void PriorElem(SqList LA,SqList LB) int a; printf(nn); printf(ttt 主 菜 单nn);

8、 printf(tt-nn); printf(ttt1输出LA中元素的前驱nn); printf(ttt2输出LB中元素的前驱nn); printf(ttt3退出n); scanf(%d,&a); switch(a) case 1: system(cls); Prior_LElem(LA,flag1); system(cls); break; case 2: system(cls); Prior_LElem(LB,flag2); system(cls); break; case 3: system(cls); break; void Prior_LElem(SqList L,int Flag)

9、 int a,e,i,flag=0; if(L.length=0) printf(线性表已被置空); else if(Flag=0) printf(线性表已被销毁); else printf(请输入输出前驱的元素:);G: scanf(%d,&a); for(i=1;i=L.length;i+) GetElem(L,i,e); if(a=e) flag=1; if(i=1) printf(nn元素%d没有前驱,a); break; GetElem(L,i-1,e); printf(nn元素%d的前驱是:%d,a,e); if(flag=0) printf(nn你输的数据不在线性表中,请重新输入

10、:); goto G; printf(nnnnnn按Enter键); getchar();getchar();void NextElem(SqList LA,SqList LB) int a; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1输 出 LA 中 元 素 的 后 继nn); printf(ttt2输 出 LB 中 元 素 的 后 继nn); printf(ttt3退 出n); scanf(%d,&a); switch(a) case 1: system(cls); Next_LElem(LA,flag1); sy

11、stem(cls); break; case 2: system(cls); Next_LElem(LB,flag2); system(cls); break; case 3: system(cls); break; void Next_LElem(SqList L,int Flag) int a,e,i,flag=0; if(L.length=0) printf(线性表已被置空); else if(Flag=0) printf(线性表已被销毁); else printf(请输入输出后继的元素:);I: scanf(%d,&a); for(i=1;i=L.length;i+) GetElem(

12、L,i,e); if(a=e) flag=1; if(i=L.length) printf(nn元素%d没有后继,a); break; GetElem(L,i+1,e); printf(nn元素%d的后继是:%d,a,e); if(flag=0) printf(nn你输的数据不在线性表中,请重新输入:); goto I; printf(nnnnnn按Enter键); getchar();getchar();void ListInsert(SqList &LA,SqList &LB) int a; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); p

13、rintf(ttt1在 LA 中 插 入 元 素nn); printf(ttt2在 LB 中 插 入 元 素nn); printf(ttt3退 出n); scanf(%d,&a); switch(a) case 1: system(cls); ListInsert_L(LA,flag1); system(cls); break; case 2: system(cls); ListInsert_L(LB,flag2); system(cls); break; case 3: system(cls); break; void ListInsert_L(SqList &L,int Flag) int

14、 a,b,i,*p,*q; if(Flag=0) printf(线性表已被销毁); else if(L.length=0) printf(请在线性表中输入数据,输入0结束(0不作为线性表中的数据)n); for(i=0;i0&L.lengthSIZE) printf(请输入要插入的数据:);A: scanf(%d,&a); for(i=0;iL.length|b=q;-p) *(p+1)=*p; *q=a; +L.length; printf(n数据%d已插入到线性表中,a); else printf(线性表已存满); void ListDelete(SqList &LA,SqList &LB

15、) int a; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1删 除 LA 中 的 元 素nn); printf(ttt2删 除 LB 中 的元 素nn); printf(ttt3退 出n); scanf(%d,&a); switch(a) case 1: system(cls); Delete_LElem(LA,flag1); system(cls); break; case 2: system(cls); Delete_LElem(LB,flag2); system(cls); break; case 3: syst

16、em(cls); break; void Delete_LElem(SqList &L,int Flag) int a,*p,*q,flag=0,i; if(L.length=0) printf(线性表已被置空); else if(Flag=0) printf(线性表已被销毁); else printf(请输入要删除的数据:);E: scanf(%d,&a); for(i=0;iL.length;i+) if(a=L.elemi) flag=1; break; if(flag=0) printf(n数据%d不在线性表中,请重新输入:,a); goto E; p=&(L.elemi); q=L.

17、elem+L.length-1; for(+p;p=q;+p) *(p-1)=*p; -L.length; printf(第%d个元素%d已被删除n,i+1,a); printf(nnn按Enter键); getchar();getchar(); void ClearList(SqList &LA,SqList &LB) int a; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1将 LA 置 为 空 表nn); printf(ttt2将 LB 置 为 空 表nn); printf(ttt3将 LA 和 LB 置 为 空

18、表nn); printf(ttt4退 出n); scanf(%d,&a); switch(a) case 1: system(cls); LA.length=0; printf(已将LA表置为空表n); printf(nnn按Enter键); getchar();getchar(); system(cls); break; case 2: system(cls); LB.length=0; printf(已将LB表置为空表n); printf(nnn按Enter键); getchar();getchar(); system(cls); break; case 3: system(cls); L

19、A.length=0; LB.length=0; printf(已将LA和LB表置为空表n); printf(nnn按Enter键); getchar();getchar(); system(cls); break; case 4: system(cls); break; void DestoryList(SqList &LA,SqList &LB,SqList &LC) int a; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1删 除 LA 表nn); printf(ttt2删 除 LB 表nn); printf(tt

20、t3删 除 LA 和 LB 表nn); printf(ttt4退 出n); scanf(%d,&a); switch(a) case 1: system(cls); free(LA.elem); flag1=0; printf(已删除LA表n); printf(nnn按Enter键); getchar();getchar(); system(cls); break; case 2: system(cls); free(LB.elem); flag2=0; printf(已删除LB表n); printf(nnn按Enter键); getchar();getchar(); system(cls);

21、 break; case 3: system(cls); free(LA.elem); flag1=0; free(LB.elem); flag2=0; printf(已删除LA和LB表n); printf(nnn按Enter键); getchar();getchar(); system(cls); break; case 4: system(cls); break; void MergeList(SqList LA,SqList LB,SqList &LC) int *pa,*pb,*pc,*pa_last,*pb_last; pa=LA.elem; pb=LB.elem; pc=LC.el

22、em; 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+; else if(*pa=*pb) *pc+=*pa+; pb+; LC.length+; else *pc+=*pb+; LC.length+; while(pa=pa_last) *pc+=*pa+; LC.length+; while(pb=pb_last) *pc+=*pb+; LC.length+; printf(已将LA和LB合并到LC中

23、); printf(nnn按Enter键); getchar();getchar(); system(cls);void Output(SqList LA,SqList LB,SqList LC) int a,b,c,d,i; printf(nn); printf(ttt 主 菜 单nn); printf(tt-nn); printf(ttt1输 出 LA 表nn); printf(ttt2输 出 LB 表nn); printf(ttt3输 出 LC 表nn); printf(ttt4输 出 LA、LB 和 LC 表nn); printf(ttt5退 出n); scanf(%d,&a); switch(a)

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

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