题目内容
(请给出正确答案)
[主观题]
假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归
并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。
查看答案
如果结果不匹配,请 联系老师 获取答案
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:
A.n-1
B.n
C.2n-1
D.2n
A.元素按值有序
B.采用顺序存储结构
C.元素按值有序,且采用链式存储结构
D.元素按值有序,且采用顺序存储结构
A.1
B.n-1
C.→n
D.2n