首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设线性表L=(a1,a2,a3,…,an-2,an-1,an)采用带头结点的单链表保存,链表中结点定义如下: 请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L’=(a1,an,a2,an-1,a3,an-2,…)
设线性表L=(a1,a2,a3,…,an-2,an-1,an)采用带头结点的单链表保存,链表中结点定义如下: 请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L’=(a1,an,a2,an-1,a3,an-2,…)
admin
2020-06-17
68
问题
设线性表L=(a
1
,a
2
,a
3
,…,a
n-2
,a
n-1
,a
n
)采用带头结点的单链表保存,链表中结点定义如下:
请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L’=(a
1
,a
n
,a
2
,a
n-1
,a
3
,a
n-2
,…)。要求:
给出算法的基本设计思想。
选项
答案
算法的基本设计思想:先观察L(a
1
,a
2
,a
3
,……,a
n-2
,a
n-1
,a
n
)和L’(a
1
,a
n
,a
2
,a
n-1
,a
3
,a
n-2
,……),发现L’是由L摘取第一个元素,再摘取倒数第一个元素……依次合并而成的。为了方便链表后半段取元素,需要先将L后半段原地逆置[题目要求空间复杂度为O(1),不能借助栈],否则每取最后一个结点都需要遍历一次链表。①先找出链表L的中间结点,为此设置两个指针p和q,指针p每次走一步,指针q每次走两步,当指针q到达链尾时,指针p正好在链表的中间结点;②然后将L的后半段结点原地逆置。③从单链表前后两段中依次各取一个结点,按要求重排。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/tU3i777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
用P—V操作实现写优先读者一写者问题。
每棵树都能唯一地转换成相对应的二叉树,由树转换成的二叉树中,一个结点N的左孩子是它在原树对应结点的()。
如下图所示的AOE网,求:每项活动ai的最早开始时间e(ai)和最迟开始时间l(ai)。
把程序地址空间中使用的逻辑地址变成内存中物理地址称为()。
当向一棵m阶的B一树做插入操作时,若一个结点中的关键字个数等于(),则必须分裂成两个结点,当向一棵m阶的B一树做删除操作时,若一个结点中的关键字个数等于(),则可能需要同它的左兄弟或右兄弟结点合并成一个结点。
关于分页系统,回答下列问题:在页表中,哪些数据项是为实现换页而设置的?
分时系统里,在条件相同的情况下,通常KLT(内核级线程)比ULT(用户级线程)得到更多的CPU时间,请简要解释之。
在集中式总线仲裁中,()方式响应时间最快。
假定在一个处理机上执行的操作如下:这些作业假定按A、B、C、D、E次序先后几乎同时(时间差相对时间片大小忽略不计)到达。(1)给定相应的图示来说明分别用FcFS、RR(时间片=1)、SJF和非抢占优先调度算法(最小优先数有最高优先权)调度这些作业的情
关于死锁的银行家算法是围绕“安全状态”的概念工作的。当系统预测到不安全状态时,就拒绝分配资源,但是,银行家算法要求的条件并不是必要的。例如,某系统有12个资源供进程P0、P1、P2使用。目前的分配情况如下:请说明系统处于不安全状态;
随机试题
关于小儿腹泻不正确的是
在岩石孔隙中同时有两相以上的流体时,岩石孔隙允许某一相通过的渗透率,称为某相的()。
试述SET支付消息的功能。
急性化脓性腹膜炎的手术指征中,下列错误的是
凝血时间正常值试管法为
患者,男,50岁。腰膝酸软冷痛,小便清长,腹痛便秘。用药宜首选()
对设备监理任务的组织管理就是对这个设备监理项目的管理,它不包括()。
当写字楼、住宅等作为建设工程的最终新产品以商品的形式进入流通领域时,其交易价格是()。
西方法律大多继承了古罗马法。古罗马法规定的基本制度和原则,今天依然起作用的有()。①陪审制度②律师制度③“不告不理”原则④三权分立原则
“角谷猜想”指出,将一个自然数按以下的一个简单规则进行运算:若数为偶数,则除以2:若为奇数,则乘以3加1。将得到的数按该规则重复运算,最终可得1。请在下面程序的每条横线处填写一个语句,使程序的功能完整。(如:输入34,则输出结果为341752261
最新回复
(
0
)