首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假设有一带头结点的循环双链表表示的线性表L=(a1,a2,…,an-1,an)。 设计在时间和空间上都尽可能高效的算法,将线性表L改造成L=(a1,a3,…,an,…,a4,a2)。要求: 根据基本设计思想,采用C或C++或Java语言描述算法,
假设有一带头结点的循环双链表表示的线性表L=(a1,a2,…,an-1,an)。 设计在时间和空间上都尽可能高效的算法,将线性表L改造成L=(a1,a3,…,an,…,a4,a2)。要求: 根据基本设计思想,采用C或C++或Java语言描述算法,
admin
2014-04-17
31
问题
假设有一带头结点的循环双链表表示的线性表L=(a
1
,a
2
,…,a
n-1
,a
n
)。
设计在时间和空间上都尽可能高效的算法,将线性表L改造成L=(a
1
,a
3
,…,a
n
,…,a4,a
2
)。要求:
根据基本设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法实现如下: void modi fy(struct node *head) { struct node *s=NULL; struct node *L=head; struct node *p=L一>next,*p1; L一>next=L一>prev=NULL; for(;p !=L;p=p1) { if(p一>next !=L) { //删除偶数结点 p1=p一>next; p一>next=p1一>next; p1一>next一>preV=p; //把偶数结点捅入s if(s==NULL) { s=p1; p1一>next=p1一>prev=p1; } else { p1一>next=s; p1一>prev=s一>preV; s一>prev一>next=p1; S一>preV=p1; s=s一>preV; } } p1=p一>next; L一>preV一>next=p; p一>next=L; p一>prev=L一>prev; L一>prev=p; } //合并两个链表 if(s==NULL)return; p=s一>preV p一>next=L; L一>preV一>next=s; s一>prev=L一>preV; L一>prev=p; }
解析
转载请注明原文地址:https://jikaoti.com/ti/ipajFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
分析美国独立战争和南北战争的异同。
简述20世纪30年代英法推行绥靖政策的原因。
西藏自治区的设立时间是()。
唐朝时,中国和非洲也有来往。下列有关这方面的证据中最具说服力的是()
“时方镇缺守帅,稍命文臣权之……又置转运使、通判,为之条禁,文薄渐为精密,由是利归公上而外权削矣。”这段文字反映出北宋初期加强地方控制的基本理念是()。
俄国进行社会主义革命最基本、最主要的前提条件是()。
下列对凡尔赛和约中有关德国疆界问题的表述,正确是()。
下列现象均属于明朝手工业进步的表现的是()①嘉万年间民营手工业渐居主要地位②匠役制度瓦解③出现了雇佣劳动、组织手工工场的经营方式④加强了对工匠的剥削,工匠的人身依附关系加强
著名的绥靖政策文件《霍尔—赖伐尔协定》是英、法与意大利签订的,密谋发动()。
图的D搜索类似于BFS,不同之处在于使用栈代替BFS中的队列,入/出队列的操作作为入/出栈的操作,即当一个顶点的所有邻接结点被搜索后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。(1)用邻接表作为存储结构,写一个D搜索算法;(2)用D搜索方法
随机试题
Itmightbesaidthatthegreat,writersofeachgenerationhavenotonlysucceededinevokingaplaceorpeople,butalsofound
某精馏塔的理论板数为17块(包括塔釜),全塔效率为0.5,则实际塔板数为()块。
A.生长激素B.甲状腺激素C.两者都是D.两者都不是具有促进蛋白质合成作用的是
某犬,1周前发热、呕吐、腹泻,现在眼角膜呈浅蓝色浑浊,表面光滑,侧面视诊浑浊表面有薄的透明层。该犬所患眼病是
隧道检测包括()。
人耳能听到的频率为()。
下列有关劳动保护用品说法错误的是()。
企业发生的下列交易或事项产生的汇兑差额应计入当期损益的有()。
下列关于社会工作的说法中,正确的是()。
教师在批评做错事的学生时,训斥、谩骂、挖苦、歧视等行为属于教育中非人道性()现象。
最新回复
(
0
)