[说明] 函数DelA - InsB ( LinkedList La, LinkedList Lb, int key 1,int key 2,int len)的功能是,将线性表A中关键码为key 1的节点开始的len个节点,按原顺序移至线性表B中关键码为key 2的节点之前。若移动成功,则返回0;否则返回-1。 线性表的存储结构为带头节点的单链表,La为表A的头指针,Lb为表B的头指针。单链表节点的类型定义如下。 typedef struct node{ int key; struct node*next; } *LinkedList; [C程序] int DelA_InsB (LinkedLiSt La, LinkedList Lb, int key1,int key2,int len { LinkedList p, q, S, prep, pres;int k;if (!La ->next || !Lb ->next || len<=0) return-l;p = La->next;prep = La;while (p && p->key != key1){/* 查找表A中键值为key1的节点 */ prep = p; p = p->next;}if (!p) return -1; /* 表A中不存在键值为key1的节点 */q = p;k = 1;while (q && (1) ){ /* 在表A中找出待删除的len个节点 */ (2) ; k++; } if (!q) return -1; /* 表A中不存在要被删除的len个节点 */ S = Lb ->next; (3) ; while (s && s->key != key2){/* 查找表B中键值为key2的节点 */ pres = s; s = e->next; } if (!s) return -1; /* 表B中不存在键值为key2的节点 */ (4) q->next; /* 将表A中的len个节点删除 */ q->next= (5) pres->next = p; /* 将len个节点移至表B */ return 0; }