版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、12021年年10月月17日日 删除顺序表a中第i个元素起的k个元素 Status DeleteK(SqList &a,int i,int k) if(i1|ka.length) return FALSE; for(count=0;i+count-1va.listsize) return ERROR; va.length+; for(i=va.length-1;va.elemix&i=0;i-) va.elemi+1=va.elemi; va.elemi+1=x; return OK; 32021年年10月月17日日 在带头结点的链表上实现在带头结点的链表上实现locate操作操作 LNode
2、* Locate(LinkList L,int x) for(p=L-next;p&p-data!=x;p=p-next); return p;42021年年10月月17日日 将将ha和和hb两条链表连接起来两条链表连接起来,带头节点带头节点 void ListConcat(LinkList ha,LinkList hb,LinkList &hc) hc=ha;p=ha; while(p-next) p=p-next; p-next=hb-next; free(hb);52021年年10月月17日日在无头结点链表中第i个元素前插入节点b Status Insert(LinkList &L,in
3、t i,int b) p=L;q=(LinkList*)malloc(sizeof(LNode); q-data=b; if(i=1) q-next=p;L=q; else while(-i1) p=p-next; q-next=p-next;p-next=q; 62021年年10月月17日日删除无头结点链表中第i个元素 Status Delete(LinkList &L,int i) if(i=1) L=L-next; else p=L; while(-i1) p=p-next; p-next=p-next-next; 72021年年10月月17日日删除递增链表中大于mink小于maxk的节
4、点Status Delete_Between(Linklist &L,int mink,int maxk) p=L; while(p&p-next-datanext; if(p-next) q=p-next; while(q-datanext; p-next=q; 8 实现顺序表的转置 void reverse(SqList &A) for(i=1,j=A.length;ij;i+,j-) A.elemiA.elemj;2021年年10月月17日日9 实现链表转置(要求利用原空间,l2) void LinkList_reverse(Linklist &L) p=L-next;q=p-next;
5、s=q-next; p-next=NULL; while(s-next) q-next=p;p=q; q=s;s=s-next; q-next=p;s-next=q;L-next=s;2021年年10月月17日日102021年年10月月17日日void merge(LinkList &A,LinkList &B,LinkList &C) p=A-next;q=B-next;C=A; while(p&q) s=p-next;p-next=q; if(s) t=q-next;q-next=s; p=s;q=t; 11 把元素递增排列的链表A和B合并为C,且C中元素递减排列,使用原空间 void r
6、everse_merge(LinkList &A,LinkList &B,LinkList &C)/ pa=A-next;pb=B-next;pre=NULL; while(pa|pb) if(pa-datadata|!pb) pc=pa;q=pa-next;pa-next=pre;pa=q; else pc=pb;q=pb-next;pb-next=pre;pb=q; / pre=pc; C=A;A-next=pc; /reverse_merge2021年年10月月17日日12 求递增排列的顺序表A和B的元素交集并存入C中(递增) 假设A,B结束的条件为:A.elemn=B.elemn=0;
7、 void SqList_Intersect(SqList A,SqList B,SqList &C) i=1;j=1;k=0; while(A.elemi&B.elemj) if(A.elemiB.elemj) j+; if(A.elemi=B.elemj) C.elem+k=A.elemi; i+;j+; 2021年年10月月17日日13 求递增排列的链表A和B的元素交集并存入C中(递增) void LinkList_Intersect(LinkList A,LinkList B,LinkList &C)/ p=A-next;q=B-next; pc=(LNode*)malloc(size
8、of(LNode); C=pc; while(p&q) if(p-datadata) p=p-next; else if(p-dataq-data) q=q-next; else s=(LNode*)malloc(sizeof(LNode); s-data=p-data; pc-next=s;pc=s; p=p-next;q=q-next; 2021年年10月月17日日14A,B,C三个顺序表,要求删除A中同时出现在B,C的元素 A,B,C中的元素可能出现重复中的元素可能出现重复 void SqList_Intersect_Delete(SqList &A,SqList B,SqList C)
9、 i=0;j=0;k=0;m=0; while(iA.length&jB.length& kC.length) if(B.elemjC.elemk) k+; else same=B.elemj; while(B.elemj=same) j+; while(C.elemk=same) k+; while(iA.length&A.elemisame) A.elemm+=A.elemi+; while(iA.length&A.elemi=same) i+; /while while(inext;q=C-next;r=A-next; while(p&q&r) if(p-datadata) p=p-ne
10、xt; else if(p-dataq-data) q=q-next; else u=p-data; while(r-next-datanext; if(r-next-data=u) s=r-next; while(s-data=u) t=s;s=s-next;free(t); /while r-next=s; /if while(p-data=u) p=p-next; while(q-data=u) q=q-next; 2021年年10月月17日日可以改进可以改进16 删除单循环链表中结点s的直接前驱(无头结点、头指针) Status Delete_Pre(CiLNode *s) p=s;
11、while(p-next-next!=s) p=p-next; p-next=s; return OK;2021年年10月月17日日17 完成双向循环链表结点的pre域(本来pre为NULL) Status DuLNode_Pre(DuLinkList &L) for(p=L;!p-next-pre;p=p-next) p-next-pre=p; return OK;2021年年10月月17日日18 把单链表L的元素按类型分为三个循环链表. Status LinkList_Divide(LinkList &L,CiList &A,CiList &B,CiList &C) s=L-next; A
12、=(CiList*)malloc(sizeof(CiLNode);p=A; B=(CiList*)malloc(sizeof(CiLNode);q=B; C=(CiList*)malloc(sizeof(CiLNode);r=C; while(s) if(isalphabet(s-data) p-next=s;p=s; else if(isdigit(s-data) q-next=s;q=s; else r-next=s;r=s; s=s-next; /while p-next=A;q-next=B;r-next=C; 2021年年10月月17日日19 按1,3,5,.4,2的顺序重排双向循环链表L中的所有结点(有头节点) void OEReform(DuLinkedList &L) p=L.next; while(p-next!=L&p-next-next!=L) p-next=p-next-next
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026道德与法治二年级拓展空间 自然奇观欣赏
- 2026八年级道德与法治上册 国家安全底线
- 2026年社区儿童过敏预防方案合同协议
- 2026年商场行为分析监控系统合同协议
- 职业规划测评收费指南
- 初中升职校职业规划指南
- 公司发展职业规划战略
- 领跑市场:创新与竞争-掌握新兴技术引领市场变革
- 电子出版物市场剖析-领跑竞争格局与业务拓展
- 科技驱动下的证券革新-揭秘AI、区块链、大数据引领的证刓变革
- 煤矿竣工验收报告
- 2026年保山市昌宁县人民医院编制外合同制专业技术人员招聘(22人)考试备考题库及答案解析
- 妇幼保健机构中的患者隐私保护与母婴信息管理
- 耳鼻喉科电子喉镜检查操作规范
- 2026中国长江三峡集团有限公司春季校园招聘笔试参考题库及答案解析
- 2026年宁波报业传媒集团有限公司校园招聘笔试参考试题及答案解析
- 2026广东省三宜集团有限公司招聘19人备考题库附答案详解(综合题)
- 电瓶车销售管理制度(3篇)
- 2025年历年辽水集团笔试真题及答案
- 2026年及未来5年市场数据中国量子点发光二极管(QLED) 行业市场全景分析及投资战略规划报告
- 2025年北京经济管理职业学院辅导员考试笔试真题汇编附答案
评论
0/150
提交评论