


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单项选择题(120.0 分) C一个无限序列,可以为D单项选择题(120.0 分) C一个无限序列,可以为D一个无限序列,可以为【:n(n0)n=02.在个结点的顺序表,算法的时间复杂度是 O(1)的操作i 个结点(1in)i 个结点的直接前驱B在第i 个结点后C删除第i 个结点(1in)D顺序查找与给定值x 相等的元: 【i O(n)O(n)3.若长度为n Cn-Dn-i-i :性表的第i 个位【一个新的数据前需要先将线性表的第i 个数据元素至第n 个数1 n-i+1 4.将两个各有n1 和n2 个元素的有序表(递增):【7、83 5.将长度为n m 【:n m m O(m6.L 是p p
2、【:A O(m6.L 是p p 【:A p B p C D p p (priordatanextApnext=s;sprior=p;pnextprior=s;snext=pnext; Bpnext=s;pnextprior=s;sprior=p;snext=pnext; Csprior=p;snext=pnext;pnext=s;Dsprior=p;snext=pnext;pnextprior=s;所:8.结点除自身信息外还包括指针域,因密度小于顺逻辑上相邻的结点物理上不必相C可以通过计算直接确定第i 个结点【的:】选项C 错误的原因是链结构的地址不一定是连续的,所以不能通过计算直接确定第单链
3、D仅有尾指针的单循环链后【:】本题显然应在选项B D 和删除第一各自的尾结各【:】本题显然应在选项B D 和删除第一各自的尾结各自的第一个元素结一个表的头结点,另一个表的尾结【:、R211. typedef emType k ik+1 个结点的数据是(【: 个结点是 SSk.cur,其包含的数据是 SSk.cur.data12.A 和B m nA+B 运算时最好情况下的时间复BO(n)(当m :】当两个多项式单链表以指数有序排列时,实现相加运算时所花时间最少,为 O(m+n)【简答题(90.0分13.线性表(a1,a2,a3 ,an)采用顺序采用C C+JAVA 简答题(90.0分13.线性表
4、(a1,a2,a3 ,an)采用顺序采用C C+JAVA :n (1)C n)i=0j=n-1; i,j 为工作指针(下标a 1n t=a0; 暂存枢轴元素。while(i=0)j-; if(ij) 负数前while(ij &ai0i+; if(ij) 正数后 (2)说明算法的复杂性:上述算法时间复杂度为O(n,算法的空间复杂度为 O(1):【分析】假设原数组序列为 abcd1234,要求变换成的数组序列为 1234abcd,即循环左移了 4 位。比较之后,不难看出,其中有两段的顺序是不变的:1234abcdp 位的过程就是把数组的两部分abcd1234 前n-p 个数逆序排列:4321dcb
5、a1234后p 1234dcba1234abcd。n x0,x1,xp,xn-1xn-1,xp,xp-1,x0R n-p 个数和后p xp,xp+1,xn-1,x0,x1,xp-1n x0,x1,xp,xn-1xn-1,xp,xp-1,x0R n-p 个数和后p xp,xp+1,xn-1,x0,x1,xp-1(2)用C voidreversek=left,j=right,temp;k left,j right while (k0&reverse (R,0,n-1); /将全部数据逆置 reverseR,0,n-p-1n-p 个元素逆置 reverse (R,n-p,n-1); /将后p 个元素
6、逆置(3)说明算法的复杂性:上述算法的时间复杂度为 O(n),算法的空间复杂度为 O(1)结点的单链表中删除(一个)最小值结点。要求(1)给出算法的基本设C C+JAVA :(2)用C voidinklistLNode*p=L-next假定链表非空,p 为工作指针,指向待处理的结点LNode*pre=Lpre 指向最小值结点的前LNode*q=pq 指向最小值结点,初始假定第一元素结点是最小值结while(p-if(p-next-datadata) 查最小值结p=p-nextpre-next=q-next; 从链表上删除最小值结freeq;(1)。(2)C C+JAVA :结点,将其移到链表最
7、前面,实质上是将该结点从链表上摘下(不是删除并回收空间(2)C C+JAVA :结点,将其移到链表最前面,实质上是将该结点从链表上摘下(不是删除并回收空间(2)用C voiddelinsert(LinkListLNode*p=L-next/p 是链表的工作指LNode *pre=L; /pre 指向链表中数据域最小值结点的前驱 LNode*q=p;q 指向数据域最小值结点,初始假定是第一结点 while (p-next!=NULL) if(p-next-datadata找到新的最小值结点 if(q!=L-next若最小值是第一元素结点,则不需再操作 pre-next=q-next; /将最小值
8、结点从链表上摘下q-next=L-next; /q L-表归到ha 表中,且归并后ha 仍递增序,在归并中对于ha 表中已有的数据若hb 中也有,则hb ha 中,hb 的链表在算法中不允许破坏。hb hb 的结点合并到结果链表时,要生成新结点。:hb hb 的结点合并到结果链表时,要生成新结点。C 语言算法描述如下: voidUnion(LinkList&haLinkListhb) LinkList la; LNode *pa=ha; pa ha 链表的工作指针 LNode *pb=hb; pb hb 链表的工作指针 LNode*pre=la; pre 指向当前待合并结点的前驱 while
9、(pa&pb)if(pa-datadata) 处理ha 中数elseif(pa-datapb-data) hb 中数据。 r=(LinkList)malloc(sizeof(LNode); 申请空间 pre-pre=r; 将新结点链入结果链pb=pb-next; elseif(pa-datapb-data) hb 中数据。 r=(LinkList)malloc(sizeof(LNode); 申请空间 pre-pre=r; 将新结点链入结果链pb=pb-next; hb else pa-data=pb-data; pa=pa-next; ha pb=pb-next; hb if(pa!=NULL
10、pre-next=pa; elsepre-freela; 头结点,ha、hb 18.结点的线性链表 list,请写一算法,将该链表按结点数据域的:C LinkListLinkListSort(LinkList&list)/list LNode*p=list-next; p 是工作指针,指向待排序的当前元list-next=NULL; whiler=p-next; r p 的后if(q-datap-data) 处理待排序结点p 比第一个元素结点小的情p-list=p; else while(q-next!=NULL&q-next-datanext=q-next; 将当前排序结点链入有序链表p=r
11、; p 1i-i i-1 list list 是头结点的指针,则相应处理要简单些,其算法如下:LinkListLinkListSort(LinkList&list)/list 结点的线性链LNode*p=list-next; p 指向第一元素list list 是头结点的指针,则相应处理要简单些,其算法如下:LinkListLinkListSort(LinkList&list)/list 结点的线性链LNode*p=list-next; p 指向第一元素结点 list-next=NULL; 有序链表初始化为空 while(p!=NULL) r=p-next; 保存后while(q-next!=
12、NULL & q-next-datanextp 是链表的工作指针,指向待处理的当前元素for(i=1;inext;若n 是奇数,后移过中心结点 while(p!=NULL& si= =p-data)测试是否中心对称 if(p=NULL)return1链表中心对elsereturn0算法中先将“链表的前一半”元素(字符)n 结点的循环双链表,所有元素值均为整数,设计一个算法输出其倒数第k 个结点的值。k :prior C findk (DuLinkList L,DuLNode *p=L-prior; /p 指向尾结点,i 1 whilep!=L&结点的循环双链表,所有元素值均为整数,设计一个算法
13、输出其倒数第k 个结点的值。k :prior C findk (DuLinkList L,DuLNode *p=L-prior; /p 指向尾结点,i 1 whilep!=L&ik)p idata);return域向前查找k-1k 21.A B,heada 和headbA ilen 个元素,然后将单链表B j i 个元素起的共len 1i len i-1i+len A i 个起的len A B A B j A i,len 和j 。:i 个元素起的共len 1 i 个时开始数len i-1 i+len A i len A B A B j A 表之和删除中应注意前驱后继关系,不能使链表“断链。另外,算法中应判断i,len 和j 。C 语言算法描述如下: LinkListDelInsert(LinkListheada,headb, if(i1 | len1 | j1)f“n;exit(0p=heada/*p 为链表A A i 个元素时,p 指向i-1 个元素*/k=0while(p!=NULL&knextq A wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竞业限制补偿协议书(含竞业禁止解除条件)
- 高效能源利用型电动汽车换电站场地租赁与运营管理合同
- 国际教育培训机构外籍教师任聘合同
- 影视制作公司群众演员合同管理与责任约定
- 《甜品店设计》课件
- 《塑料狗小乖》课件
- 财务报销培训总结
- 高围孕产妇培训体系构建
- 《安全生产培训质量控制标准化健康与安全课件》
- 医学诊断证明书规范与管理体系
- 2024年株洲国创轨道科技有限公司招聘笔试冲刺题(带答案解析)
- AI+蛋白质行业研究报告 2024
- 利昕报废汽车回收拆解有限公司报废汽车回收拆解建设项目环评可研资料环境影响
- 公共政策导论全套教学课件
- 农产品加工企业管理培训
- 校车驾驶员交通安全培训
- 飞机维修员入门教程
- 超声引导下神经阻滞下肢篇
- 2024届高三英语二轮专题复习:关于水中或雨中脱困脱险的读后续写练习写作素材
- 《如何处理人际关系》课件
- 中国带状疱疹诊疗专家共识2023版
评论
0/150
提交评论