填空题 [说明]
函数DelXInsY(LinkedList Lx,LinkedList Ly,int key 1,int key2,int len)的功能是,将线性表X中关键码为key1的结点开始的len个结点,按原顺序移至线性表Y中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,Lx为表X的头指针,Ly为表Y的头指针。单链表结点的类型定义如下。
typedef struct node

int key;
struct node *next;
*LinkedList;
[C程序代码]
  • 1、
【正确答案】 1、{{*HTML*}}k<len或其等价形式
(2) q=q_>next或其等价形式
(3) pres=Ly或其等价形式
(4) prep_>next
(5) prep_>next    
【答案解析】由题干说明及所给出的C程序代码可知,已知条件为两个链表Lx和Ly,最后得到的结果也是两个链表,只不过是将Lx中的部分结点移动到Ly中,因此,本问题主要解决的问题是怎么合理地移动相关结点。
在题干信息中没有给出结点移动的具体算法描述,这就要求解题时要先结合实例自行设计一个算法,然后观察是否与程序中的算法一致。若不一致,则再寻找其他算法。在自己设计相关算法之前,最好要先看一看题目给出的算法提示,在给出的C程序代码中,总是有一些蛛丝马迹可以让我们找到突破口的,这些地方通常都会给出题目所用算法的暗示。