首页 > 职业资格考试
题目内容 (请给出正确答案)
[主观题]

设有n个待排序元素存放在一个不带表头结点的单链表中,每个链表结点只存放一个元素,头指针为r。

试设计一个算法,对其进行二路归并排序,要求不移动结点中的元素,只改各链结点中的指针,排序后r仍指示结果链表的第一个结点。(提示:先对待排序的单链表进行一次扫描,将它划分为若干有序的子链表,其表头指针存放在一个指针队列中。当队列不空时重复执行,从队列中退出两个有序子链表,对它们进行二路归并,结果链表的表头指针存放到队列中。如果队列中退出一个有序子链表后变成空队列,则算法结束。这个有序子链表即为所求)。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“设有n个待排序元素存放在一个不带表头结点的单链表中,每个链表…”相关的问题
第1题
设有一个线性表(e0,e1,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个
设有一个线性表(e0,e1,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个

数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原址内容置换为(en-1,en-2,…,e1,e0)。

点击查看答案
第2题
在已排好序的序列中,一个元素所处的位置取决于具有更小排序码的元素的个数。基于这个思想,可得
计数排序方法。该方法在声明元素时为每个元素增加一个计数域count,用于存放在已排好序的序列中该元素前面的元素数日,最后依count域的值,将序列重新排列,就可完成排序。试编写一个算法,实现计数排序。并说明对于一个有n个元素的序列,为确定所有元素的count值,最多需要进行n(n-1)/2次排序码比较。

点击查看答案
第3题
设有一个双向循环链表,每个结点中除有pre,data和next三个域外, 还增设了一个访问频度域freq。
在链表被起用之前, 频度域freq的值均初始化为零, 而每当对链表进行一次Locate(L, x)的操作后, 被访问的结点(即元素值等于x的结点) 中的频度域freq的值便增1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的Locate操作的算法。

点击查看答案
第4题
请回答以下关于堆的问题: (1)堆的存储结构是顺序的,还是链式的? (2)设有一个大顶堆,即堆中任意结点的关键码均大于它的左孩子和右孩子的关键码。其具有最大值的元素可能在什么地方? (3)对n个元素进行初始建堆的过程中,最多做多少次数据比较?

点击查看答案
第5题
直接插人排序算法可以基于链表来实现。假设有一个数据随机排列的带表头结点的单链表L,试设计一个基于链表的直接插人排序算法,排序后的单链表仍然占用原来的空间。

点击查看答案
第6题
试编写一个函数,将一个有n个非零元素的整数一维数组A[n]拆分为两个一维数组,使得A[]中大于零的元素存放在B[]中,小于零的元素存放在C[]中。

点击查看答案
第7题
设有一个双向链表,每个结点中除有prior、 data 和next域外,还有一个访问频度freq域,在链表被起用之前,该域的值初始化为零。每当在链表进行一次Locata(L,x)运算后,令值为x的结点中的freq域增1,并调整表中结点的次序,使其按访问频度的非递增序列排列,以便使频繁访问的结点总是靠近表头。试写一个满足上述要求的Locata(L,x)算法。
设有一个双向链表,每个结点中除有prior、 data 和next域外,还有一个访问频度freq域,在链表被起用之前,该域的值初始化为零。每当在链表进行一次Locata(L,x)运算后,令值为x的结点中的freq域增1,并调整表中结点的次序,使其按访问频度的非递增序列排列,以便使频繁访问的结点总是靠近表头。试写一个满足上述要求的Locata(L,x)算法。

点击查看答案
第8题
下面给出一个排序算法,数组a[]是存放待排序数据元素的数组,n是数组大小,数据元素的数据类型是
T.

(1)该算法的功能是什么?

(2)若待排序数据序列为(10,20,30,40,50,60),给出每次while执行的结果序列。

(3)若待排序数序列为(60,50,40,30,20,10),给出每次while执行的结果序列。

点击查看答案
第9题
当从一个有n个元素的最小堆中删除一个结点时,需要进行调整以重新形成最小堆。为此,需要做()次关键码比较,移动()元素。
当从一个有n个元素的最小堆中删除一个结点时,需要进行调整以重新形成最小堆。为此,需要做()次关键码比较,移动()元素。

A、

B、

C、

D、

点击查看答案
第10题
编写一个递归算法,在一棵有n个结点的随机建立起来的二叉搜索树上搜索第k(1≤k≤n)小的元素,并返
编写一个递归算法,在一棵有n个结点的随机建立起来的二叉搜索树上搜索第k(1≤k≤n)小的元素,并返

回指向该结点的指针。要求算法的平均时间复杂度为O(log2n)。二叉搜索树的每个结点中除data、ieftChild、rightChild等数据成员外、增加一个count成员,保存以该结点为根的子树上的结点个数。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改